我是靠谱客的博主 无情往事,最近开发中收集的这篇文章主要介绍快速排序算法-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]都排好序后,不需要执行所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部