JS排序

来源:互联网 发布:淘宝类似威廉的男装店 编辑:程序博客网 时间:2024/06/18 17:36

众所周知,在数据结构中有10大排序,分别是:
1.冒泡排序
2.选择排序
3.插入排序
4.希尔排序
5.归并排序
6.快速排序
7.堆排序
8.计数排序
9.桶排序
10.计数排序

在这里我只介绍一下冒泡算法和快速排序的算法
冒泡排序
思想:
每次比较相邻的两个数,大的数一直向下沉,小的数一直上升。类似于冒泡。

function sort(arr) {     for( var i=0;i<arr.length-1;i++) {         for( var j=i+1;j<arr.length;j++){             if( arr[i] > arr[j]){                 var temp;                 temp = arr[i];                 arr[i] = arr[j];                 arr[j] = temp;             }         }     }     return arr; } var arr = [3,55,66,4,22,1,21]; var result = sort(arr); console.log('冒泡的结果为:',result);

快速排序
思想:
1.选择基准项(一般都是中间项)
2.比基准项小的放在数组的左边,比基准项大的放在数组的右边
3.递归

function quickSort(arr) {   var middleIndex = Math.floor( arr.length/2 );   var middle = arr.splice(middleIndex,1)[0];   var left = [];   var right = [];   for( var i=0;i<arr.length;i++) {       if( arr[i] <= middle) {           left.push(arr[i]);       }else {           left.right(arr[i]);       }   }   return quickSort(left).concat([middle],quickSort(right));}var arr = [3,55,66,4,22,1,21];var result = quickSort(arr);console.log('排序的结果为:',result);

目前就介绍这两种,这两种也是面试官容易问的。

原创粉丝点击