数组排序

1、冒泡排序
 1 function bubbleSort(arr) {
 2   var len = arr.length;
 3   for (var i = 0; i < len; i++) {
 4     for (var j = 0; j < len - 1 - i; j++) {
 5       if (arr[j] > arr[j+1]) { //相邻元素两两对比
 6         var temp = arr[j+1]; //元素交换
 7         arr[j+1] = arr[j];
 8         arr[j] = temp;
 9       }
10     }
11   }
12   return arr;
13 }
14 var arr=[24,32,75,22,65,34,25,97,56,45,33,12];
15 console.log(bubbleSort(arr));//[12, 22, 24, 25, 32, 33, 34, 45, 56, 65, 75, 97];
 1 function bubbleSort2(arr) {
 2   console.time('改进后冒泡排序耗时');
 3   var i = arr.length-1; //初始时,最后位置保持不变  
 4   while ( i> 0) {
 5     var pos= 0; //每趟开始时,无记录交换
 6     for (var j= 0; j< i; j++){
 7       if (arr[j]> arr[j+1]) {
 8         pos= j; //记录交换的位置
 9         var temp = arr[j];
10                        arr[j]=arr[j+1];
11                        arr[j+1]=temp;
12       }
13     }
14     i= pos; //为下一趟排序作准备
15   }
16   console.timeEnd('改进后冒泡排序耗时');
17   return arr;
18 }
19 var arr=[24,32,75,22,65,34,25,97,56,45,33,12];
20 console.log(bubbleSort2(arr));//[12, 22, 24, 25, 32, 33, 34, 45, 56, 65, 75, 97]
进阶版冒泡排序



原文地址:https://www.cnblogs.com/wuaidongfang/p/9934458.html