我是靠谱客的博主 无情往事,最近开发中收集的这篇文章主要介绍快速排序算法-js一、介绍二、算法过程:(1)分解:将输入的序列array[m..n]划分成两个非空子序列 array[...k]和array[k+ 1..n]使array[m...k]中任一元素的值不大于 array[k+ 1..n]中任一元素的值。 (2)递归求解:通过递归调用快速排序算法分别对array[m..k]和 array[k+ ...n]进行排序。 (3)合并:于对分解出的两个子列的排序是就地进行的,所以在 array[m..k]和array[k+ ...n]都排好序后,不需要执行,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、介绍
快速排序是一种非常高效的排序算法, 它采用「分而治之」的思想,把
大的拆分为小的,小的再拆分为更小的。
其原理如下:对于-组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递
归该过程,直到序列中的所有记录均有序为止。
二、算法过程:
(1)分解:将输入的序列array[m..n]划分成两个非空子序列
array[...k]和array[k+ 1..n]使array[m...k]中任一元素的值不大于
array[k+ 1..n]中任一元素的值。
(2)递归求解:通过递归调用快速排序算法分别对array[m..k]和
array[k+ ...n]进行排序。
(3)合并:于对分解出的两个子列的排序是就地进行的,所以在
array[m..k]和array[k+ ...n]都排好序后,不需要执行任何计算就已让
array[m...n]排好序。
三、算法代码:
1.快速排序算法:
function quickSort(arr)
{
if(arr.length<=1)
{
return arr;
}
var base_item =arr[0];//base_item是基准元素
var left_arr = [];
var right_arr=[];
for(let i=1;i<arr.length;i++)
{
if(base_item>arr[i])
{
left_arr.push(arr[i]);
}else{
right_arr.push(arr[i]);
}
}
left_arr =quickSort(left_arr);
right_arr = quickSort(right_arr);
return left_arr.concat([base_item],right_arr);
}
2.测试代码:
var a =[9,1,4,2,5,0,8,6]
var b= quickSort(a);
console.log(b);
3.测试结果:
最后
以上就是无情往事为你收集整理的快速排序算法-js一、介绍二、算法过程:(1)分解:将输入的序列array[m..n]划分成两个非空子序列 array[...k]和array[k+ 1..n]使array[m...k]中任一元素的值不大于 array[k+ 1..n]中任一元素的值。 (2)递归求解:通过递归调用快速排序算法分别对array[m..k]和 array[k+ ...n]进行排序。 (3)合并:于对分解出的两个子列的排序是就地进行的,所以在 array[m..k]和array[k+ ...n]都排好序后,不需要执行的全部内容,希望文章能够帮你解决快速排序算法-js一、介绍二、算法过程:(1)分解:将输入的序列array[m..n]划分成两个非空子序列 array[...k]和array[k+ 1..n]使array[m...k]中任一元素的值不大于 array[k+ 1..n]中任一元素的值。 (2)递归求解:通过递归调用快速排序算法分别对array[m..k]和 array[k+ ...n]进行排序。 (3)合并:于对分解出的两个子列的排序是就地进行的,所以在 array[m..k]和array[k+ ...n]都排好序后,不需要执行所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复