其他分享
首页 > 其他分享> > 快速排序的思想?并实现一个快排?

快速排序的思想?并实现一个快排?

作者:互联网

“快速排序”的思想很简单,整个排序过程只需要三步:

  (1)在数据集之中,找一个基准点

  (2)建立两个数组,分别存储左边和右边的数组

  (3)利用递归进行下次比较

 1  <script type="text/javascript">
 2 
 3         function quickSort(arr){
 4             if(arr.length<=1){
 5                 return arr;//如果数组只有一个数,就直接返回;
 6             }
 7 
 8             var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整
 9 
10             var numValue = arr.splice(num,1);//找到中间数的值
11             var left = [];
12             var right = [];
13 
14             for(var i=0;i<arr.length;i++){
15                 if(arr[i]<numValue){
16                     left.push(arr[i]);//基准点的左边的数传到左边数组
17                 }
18                 else{
19                    right.push(arr[i]);//基准点的右边的数传到右边数组
20                 }
21             }
22 
23             return quickSort(left).concat([numValue],quickSort(right));//递归不断重复比较
24         }
25 
26         alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”
27 
28     </script>

 

标签:function,arr,基准点,快排,数组,排序,快速
来源: https://www.cnblogs.com/Aiqizai/p/13748213.html