Java教程

简单算法--快速排序

本文主要是介绍简单算法--快速排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

快速排序

核心:二分法,递归;

 

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

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         }

 

这篇关于简单算法--快速排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!