时间:2021-05-25
本文实例讲述了基于JavaScript实现的快速排序算法。分享给大家供大家参考,具体如下:
首先要介绍一下冒泡排序,冒泡排序的过程很简单,首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个关键字交换,然后比较第二个和第三个,直到最后一个比较完成。这是第一趟冒泡,其结果使得关键字最大的记录被安置到最后一个位置上了。然后对序列前n-1个元素进行第二次冒泡,将倒数第二个选出。以此类推直到所有被选出,冒泡结束。
通过分析可以得出,冒泡排序的时间复杂度为O(n2)。
快速排序是对冒泡排序的一种改进,它是处理大数据集最快的排序之一,通过递归的方式将数据依次分解为包含较小元素和较大元素的不同子序列,不断重复该过程直到所有数据都是有序的。这个算法首先要选择一个基准值,围绕基准值进行。
示例如下:
算法思想如下:
选择一个基准元素,将列表分为两个子序列;
对列表重新排序,将所有小于基准元素的元素放前面,大的放后面;
分别对较小元素的子序列和较大元素的子序列重复上面两个步骤。
我们通过js实现代码如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>JavaScript快速排序</title></head><body><script type="text/javascript"> function qSort(nums) {//快速排序 if(nums.length==0){ return []; } var lesser=[]; var greater=[]; var pivot=nums[0];//选择基准元素 for(var i=1;i<nums.length;i++){ if(nums[i]<pivot){//分成两个之序列 lesser.push(nums[i]); }else{ greater.push(nums[i]); } } return qSort(lesser).concat(pivot,qSort(greater));//递归 } function show(nums){//显示数组 for(var i=0;i<nums.length;i++){ document.write(nums[i]+' '); } document.write('<br>'); } var nums=[68,80,12,80,95,70,79,27,88,93]; show(nums);//newNums var newNums=qSort(nums);//希尔排序 show(newNums);//0 0 2 3 4 5 5 6 8 9</script></body></html>就平均时间而言,快速排序是目前被认为最好的一种内部排序方法。快速排序非常适用于大型数据集合,在处理小数据集时性能反而会下降。其时间复杂度为O(nlog2n)
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
快速排序,又称划分交换排序。以分治法为策略实现的快速排序算法。本文主要要谈的是利用javascript实现in-place思想的快速排序分治法:在计算机科学中,
本文实例讲述了Python实现的数据结构与算法之快速排序。分享给大家供大家参考。具体分析如下:一、概述快速排序(quicksort)是一种分治排序算法。该算法首
本文实例讲述了基于JavaScript实现的希尔排序算法。分享给大家供大家参考,具体如下:通过对直接插入排序的分析,可知其时间复杂度为O(n2),但是,如果待排
本文实例讲述了PHP四种排序算法实现及效率分析。分享给大家供大家参考,具体如下:PHP的四种基本排序算法为:冒泡排序、插入排序、选择排序和快速排序。下面是我整理
快速排序算法,简称快排,是最实用的排序算法,没有之一,各大语言标准库的排序函数也基本都是基于快排实现的。本文用python语言介绍四种不同的快排实现。1.一行代