今天工作室断网!果断回宿舍,不然各种资料都没有。(他说将来会找到!)不好意思,又哼起来了。进入主题,大家都知道,快排是各种排序算法中,最高效的也是应用最广的,还有更重要的一点,面试特别爱考的!
其实大家或多或少都听说过快排,也就是先从取出一个基准值,然后再把其它的数与之相对比,小的放左边的集合里,大的放右边的集合里,再通过递归不断重复该步骤,实现最高效率的quickSort。
Talk is cheap, show you my code!
aaarticlea/png;base64,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*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*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" alt="" />
排序结果我就不写出来啦,大家都会数大小,哈哈哈。
刚说完JavaScript快排,突然想到,尼玛,Array.prototype.sort 不是有一个排序方法么?当然这个sort方法直接使用是有弊端的,像刚才那个数组,打印出来的结果可就是:
aaarticlea/png;base64,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" alt="" />
嗯!坑爹的字符串排序!快速的说一下,sort函数是可以接收一个对比函数参数的,若返回负数则排在前面,返回正数排在后面。我们直接看最简单的那种对比函数!
aaarticlea/png;base64,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" alt="" />
OK!升序什么的,完全可以啊!
两种方法都出来了,本着选择困难症不能有的精神(装逼的时刻到了!),我们必须知道是快排速度快呢,还是原生数组对象的sort速度快。(这不废话嘛!原生优化过的肯定比自定义递归快啊!)。呃,那我们来看看快多少。
测试环境:10000条随机0~10的数字进行排序。
测试程序:
var arr = [];
/*一万条随机数*/
for(var n = 0; n < 10000; n++){
arr.push(Math.round(Math.random()*10));
} var text = function (fn, param) {
var start, end;
// 记录执行的起始时间
start = new Date().getTime();
// 执行待测试的方法
arr.quickSort() 或 arr.sort(compare);
// 记录执行的结束时间
end = new Date().getTime();
// 输出待测试方法所运行的结果和耗时
console.log("排序完成,耗时" + (end - start) + "毫秒" );
} text();
先是quickSort排序的测试:使用arr.quickSort()
aaarticlea/png;base64,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" alt="" />
大致在2250ms附近波动的,10K条数据排序,2S。
再到原生sort排序方法测试:使用arr.sort(compare)
aaarticlea/png;base64,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" alt="" />
10ms.....
230倍的差距!
大家乖乖用sort吧,无非写一个compare函数嘛,多大点事儿!
哈哈哈,今天早上断网,就自己捣腾弄了些这个,晚上发一下。
最近我的blog的重要的代码都会以PO图为主,其实是为了让观众老爷们,能亲自手打代码,不做伸手侠。
若有什么错误,请立即指出,我会尽快修改,以免误导他人噢噢噢!
JavaScript快排与原生sort的测试的更多相关文章
-
结构体快排回顾(sort)
一般来说,我做竞赛的时候排序一般用快排 很快很方便 普通sort(从小到大) sort(a,a+n); 直接贴一段代码吧,包含了vector,sort,结构体等简单东西综合 #include < ...
-
冒泡,快排算法之javascript初体验
引子:javascript实际使用的排序算法在标准中没有定义,可能是冒泡或快排.不用数组原生的 sort() 方法来实现冒泡和快排. Part 1:冒泡排序(Bubble Sort) 原理:临近的两数 ...
-
hdu 1425:sort(排序,经典题。快排模板)
sort Time Limit : 6000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
-
LeetCode 75. Sort Colors (颜色分类):三路快排
Given an array with n objects colored red, white or blue, sort them in-place so that objects of the ...
-
HDU1425 <;sort 快排>;
给你n个整数,请按从大到小的顺序输出其中前m大的数. 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,5000 ...
-
javascript高级排序算法之快速排序(快排)
javascript高级排序算法之快速排序(快排)我们之前讨论了javascript基本排序算法 冒泡排序 选择排序 插入排序 简单复习: 冒泡排序: 比较相邻的两个元素,如果前一个比后一个大,则交换 ...
-
阮一峰大神的快排?刚才还在纠结sort()的我!真是个小傻瓜
看到这个标题之后 我毫不犹豫的点进去了 趁现在不忙我赶紧把代码写到了我的小本本上好好研究研究 (写的就不放进来了 有点丑) 研究了下 第一反应 明明能用sort()解决的 为什么非要写这么一大串 但 ...
-
待字闺中之快排单向链表;leetcode之Sort List
题目来源.待字闺中.原创@陈利人 .欢迎大家继续关注微信公众账号"待字闺中" 分析:思路和数据的高速排序一样,都须要找到一个pivot元素.或者节点. 然后将数组或者单向链表划分为 ...
-
用JavaScript实现快排
啥是快排这里就不讲了,主要还是把原来c++学的东西抓紧转化过来 快排运用的是分而治之的思想,确定一个中值,把大的放右边,小的放左边,然后再左右分别对左右的左右(雾)进行处理 需要注意的一点是,这玩意远 ...
随机推荐
-
跟服务器交互的登录Demo
服务器写死 账号密码,演示登录 服务器代码: 开发工具MyEclipse public class LoginServlet extends HttpServlet { /** * The doGet ...
-
iOS9 UI Tests探索笔记
UI Tests是什么? UI Tests是一个自动测试UI与交互的Testing组件 UI Tests有什么用? 它可以通过编写代码.或者是记录开发者的操作过程并代码化,来实现自动点击某个按钮.视图 ...
-
【mongo】mongo数据转json时特殊类型处理
mongo数据库中的有些数据类型是无法用json序列化的,比如ObjectId或者datetime.datetime类型. 可以通过json.JSONEncoder来处理 import json im ...
-
Python中format的用法
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱.语法 它通过{}和: ...
-
[第一阶段] Python学习
首先声明一下,我这个学习计划是关于学习Python的. 先说一下起因:我自己接触Python算是很久了,目前仍没学会,很失败,很惭愧.所以这次一方面简单分析一下自学会碰到的问题:另一方便,我想到了一种 ...
-
sql server存储过程实现批量删除
在项目中用到了存储过程来进行批量删除的操作,给大家分享一下 原理就是把id组成的字符串在数据库分割成数组放一张临时表,删除的时候与id进行对照 --删除会员信息 if OBJECT_ID('pro_D ...
-
Hadoop完全分布式安装
一.软件版本 Hadoop版本号:hadoop-2.6.0.tar: VMWare版本号:VMware-workstation-full-11.0.0-2305329 Ubuntu版本号:ubuntu ...
-
Linux内核分析——第二周学习笔记
20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 (一)计算机是如何工作的?(总结)——三个法宝 ①存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: ②函数调用堆栈,高 ...
-
Android安全系列之:如何在native层保存关键信息
相信大家在日常开发中都要安全层面的需求,最典型的莫过于加密.而apk是脆弱的,反编译拿到你的源码轻而易举,这时候我们就需要更保险的手段来保存密钥之类的关键信息.本文就细致地讲解简单却实用的native ...
-
查看UUID的方法
# blkid /dev/sdc1: UUID="6dfada2a-3a79-46b9-8e5d-7e8b39eba0da" TYPE="ext4" /dev/ ...