编程语言
首页 > 编程语言> > 简单算法--快速排序

简单算法--快速排序

作者:互联网

快速排序

核心:二分法,递归;

 

推荐一个把复杂烧脑的算法计算过程转为可视化动画的网站,里面还有数据结构等等好多的好东西!!!

https://visualgo.net/en

 1         //快排
 2         function Quicksort(arr){
 3             //递归的边界,计算到中间值只有它自己就排序成功了;
 4             if(arr.length <= 1){
 5                 return arr
 6             }
 7             //计算数组的相对中间下标,然后取出中间下标对应的值;
 8             let index = Math.round(arr.length/2);
 9             let centerNumber = arr.splice(index,1);
10             //两个空数组,准备存储;
11             let Leftarr = [];
12             let Rightarr = [];
13             //循环对比,跟中间值比;比它小的放左边,大的放右边;
14             for(let i=0; i<arr.length; i++){
15                 if(arr[i]<centerNumber){
16                     Leftarr.push(arr[i])
17                 }else{
18                     Rightarr.push(arr[i])
19                 }
20             }
21             //递归,数组合并,中间值,自然放中间;
22             return Quicksort(Leftarr).concat(centerNumber,Quicksort(Rightarr))
23         }

 

标签:arr,递归,--,Quicksort,二分法,算法,排序
来源: https://www.cnblogs.com/aveger/p/16167284.html