JavaScript-冒泡排序
排序 按顺序排列 从小到大,或者从大到小
算法--->排序算法
时间复杂度和空间复杂度
O(1) O(n) O(n log n)
时间复杂度 算法计算花费时间 花时间越少时间复杂度越小
空间复杂度 算法计算需要花费堆栈空间(内存)越多代表空间复杂度越高
冒泡:
前后两个数进行比较,如果符合交换条件,
交换位置。直到所有数据排序完成,结束比较。
1 var arr=[4,1,7,2]; 2 function sorts(arr){ 3 var len=arr.length-1; 4 for(var i=0;i<len;i++){ 5 for(var j=0;j<len-i;j++){ 6 if(arr[j]>arr[j+1]){ 7 // if(arr[j+1]-arr[j]<0) 8 var temp=arr[j+1]; 9 arr[j+1]=arr[j]; 10 arr[j]=temp; 11 } 12 } 13 } 14 } 15 sorts(arr); 16 console.log(arr); 17 // i 的目的是做多少轮的 比较 j和j+1是前后数据比较 18 // var arr=[4,1,7,2]; 19 // i==0 20 // arr[i]=4 21 // j=0 arr[j]=4 arr[j+1]=1 4,1,7,2---->1,4,7,2 22 // j=1 arr[j]=4 1,4,7,2--->1,4,7,2 23 // j=2 arr[j]=7 1,4,7,2--->1,4,2,7 24 //#### j=3 arr[j]=7 arr[j+1]不存在 因为j+1超过数组的长度,所以j必须是长度-1 25 // i==1; 26 // j==0 arr[j]=1 1,4,2,7--->1,4,2,7 27 // j==1 arr[j]=4 1,4,2,7--->1,2,4,7 28 // ###j==2 上面一次循环中放在最后的是最大的,所以不需要循环到2 29 // i==2; 30 // j=0 arr[j]=1 1,2,4,7-->1,2,4,7

浙公网安备 33010602011771号