帝国系统做网站地图,上饶网站建设,下载一个网站,网站建设主体设计要求冒泡排序
按照冒泡排序的思想#xff0c;我们要把相邻的元素两两比较#xff0c;当一个元素大于右侧相元素时#xff0c;交换它们的位置#xff1b;当一个元素小于或等于右侧相邻元素时#xff0c;位置不变
大的往右丢#xff08;往下沉#xff09;#xff0c;小的往…冒泡排序
按照冒泡排序的思想我们要把相邻的元素两两比较当一个元素大于右侧相元素时交换它们的位置当一个元素小于或等于右侧相邻元素时位置不变
大的往右丢往下沉小的往左排 外层循环控制趟数内层循环控制每一趟的交换次数内部交换两个变量的值 内层for循环 第一趟的索引号是0 交换次数是4
内层for循环 第二趟的索引号是1 交换次数是3
内层for循环 第三趟的索引号是2 交换次数是2
内层for循环 第四趟的索引号是3 交换次数是1 细节优化 // 优化1 arr.length-1
for(var i 0;iarr.length-1;i){for(var j 0;jarr.length-1;j){}
}//优化2 减去多余的比较次数 arr.length-1-i
for(var i 0;iarr.length-1;i){for(var j 0;jarr.length-1-i;j){}
}选择排序 // 选择排序// 拿第一个值和后面的值进行比较var list [83, 41, 71, 45, 79];// 第一轮结束之后最小的值放在最前面for (var i 0; i list.length - 1; i) {// 假设一个i为最小值// 内层循环控制每层做什么操作拿本次选取的值与后面的值比较for (var j i 1; j list.length; j) {// 如果前面的值比后面的大放到最后if (list[i] list[j]) {// 交换位置var temp list[i];list[i] list[j];list[j] temp;}}}console.log(选择排序如下 list);选择排序优化
var list [83, 41, 71, 45, 79];// 第一轮找到最小的值放到下标为0的位置// 第二轮找到第二小的值放到下标为1的位置// n个数找n-1次var min list[i];// 假设最小值list[i]var minIndex i; // 假设最小值下标for (var i 0; i list.length - 1; i) {for (var j i 1; j list.length; j) {if (list[j] list[minIndex]) {// min list[j];minIndex j;}}}var temp list[i];list[i] list[minIndex];list[minIndex] temp;console.log(选择排序如下 list);