本文实例讲述了基于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程序设计有所帮助。
# JavaScript
# 快速排序
# 算法
# JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
# JS实现的冒泡排序
# 插入排序算法示例
# JS排序算法之希尔排序与快速排序实现方法
# JS排序之快速排序详解
# 基于javascript实现的快速排序
# JavaScript快速排序算法不同版本原理解析
# 递归
# 第二个
# 较小
# 希尔
# 都是
# 这是
# 相关内容
# 第一个
# 最好的
# 上了
# 遍历
# 适用于
# 以此类推
# 它是
# 感兴趣
# 数据结构
# 给大家
# 很简单
# 第三个
# 介绍一下
相关文章:
如何在阿里云服务器自主搭建网站?
如何制作一个表白网站视频,关于勇敢表白的小标题?
,网站推广常用方法?
如何生成腾讯云建站专用兑换码?
制作网站的公司有哪些,做一个公司网站要多少钱?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
制作网站的模板软件,网站怎么建设?
建站之星如何开启自定义404页面避免用户流失?
如何选择高效响应式自助建站源码系统?
如何快速辨别茅台真假?关键步骤解析
如何在宝塔面板中修改默认建站目录?
建设网站制作价格,怎样建立自己的公司网站?
成都网站制作报价公司,成都工业用气开户费用?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
开封网站制作公司,网络用语开封是什么意思?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
广东企业建站网站优化与SEO营销核心策略指南
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
,怎么用自己头像做动态表情包?
详解jQuery停止动画——stop()方法的使用
头像制作网站在线制作软件,dw网页背景图像怎么设置?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
建站主机选哪种环境更利于SEO优化?
建站主机是否等同于虚拟主机?
网站制作企业,网站的banner和导航栏是指什么?
建站之星安装需要哪些步骤及注意事项?
如何选择PHP开源工具快速搭建网站?
建站之星Pro快速搭建教程:模板选择与功能配置指南
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
招商网站制作流程,网站招商广告语?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何选择适合PHP云建站的开源框架?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
教学网站制作软件,学习*后期制作的网站有哪些?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
活动邀请函制作网站有哪些,活动邀请函文案?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
如何快速搭建高效简练网站?
如何在Windows环境下新建FTP站点并设置权限?
5种Android数据存储方式汇总
魔毅自助建站系统:模板定制与SEO优化一键生成指南
宝塔建站教程:一键部署配置流程与SEO优化实战指南
如何快速重置建站主机并恢复默认配置?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
高性价比服务器租赁——企业级配置与24小时运维服务
如何通过虚拟主机快速搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。