`
liudaoru
  • 浏览: 1564240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js实现快速排序算法[z]

    博客分类:
  • Ajax
阅读更多
http://www.7tt.com.cn/perol/2007/01/09/quick_sort_pk/
//快速排序算法
function doSort(a, s, e) {
	if (s < e) {
		var pos = partition(a, s, e);
		doSort(a, s, pos - 1);
		doSort(a, pos + 1, e);
	}
}
function partition(a, st, en) {
	var s = st;
	var e = en + 1;
	var temp = a[s];
	while (1) {
		while (a[++s] < temp) {
		}
		while (a[--e] > temp) {
		}
		if (s > e) {
			break;
		}
		var tem = a[s];
		a[s] = a[e];
		a[e] = tem;
	}
	a[st] = a[e];
	a[e] = temp;
	return e;
}
//向数组附加快速排序算法
Array.prototype.quickSort = function () {
	doSort(this, 0, this.length - 1);
};
分享到:
评论

相关推荐

    2022年PHP面试题集锦.doc

    快速排序是一种高效的排序算法,它的工作原理是通过选择一个 pivot 元素,将数组分成两部分,然后递归地排序这两部分。 2. 实现一种字符串截取函数,类似于 substr,必须可以截取中文这种多字节编码。 字符串截取...

    php程序员面试题c卷附答案.pdf

    - 对于性能要求较高的场景,可以考虑使用更高效的排序算法,如快速排序、归并排序或堆排序等。这些算法在平均和最坏情况下的时间复杂度都优于冒泡排序。 7. **$_SERVER超级全局变量**: - `$_SERVER` 是PHP的超级...

    MATLAB中DEA代码-Ludus:ludus[ludi,m。,o-Dekl。]-学校,比赛

    排序算法: 气泡排序: 堆排序: 插入排序: 合并排序: 耐心排序: 快速排序: 快速合并排序可以对小型数组进行排序: 选择排序: 一种 *: 推销员问题: 余类代数和线性代数 分频器: 多项式除法和乘法,求学方法...

    frontend-hour:前端时间是每天学习一小时的时间。 这是所有主要前端概念的集合,它将带您从新手前端工程师到Nijna

    类扩展关闭馆藏咖喱去抖动解构事件循环扩展有/没有新功能组成吊装插入器和生成器面向对象的Javascript 承诺放任自流原型链递归时间死区风门价值与参考基本设计模式演算法基本气泡排序插入排序合并排序快速排序问题...

    判断青蛙过河leetcode-leetcode:https://leetcode-cn.com/problemset/all/

    判断青蛙过河leetcode ...快速排序 √ 希尔排序 归并排序 桶排序 基数排序 × 一个整数分解成两个质数和 √ 数据分类(int转16进制) √ 设计模式 util doc 基础扎实全面:编程语言、数据结构、算法等 高质量代

    2021-2022计算机二级等级考试试题及答案No.34.docx

    4. 排序算法比较次数:快速排序、冒泡排序和直接插入排序在最坏情况下比较次数为n(n-1)/2,而堆排序在最坏情况下的比较次数是O(n log n)。 5. Internet 使用的网络协议:TCP/IP(Transmission Control Protocol/...

    2021-2022计算机二级等级考试试题及答案No.17643.docx

    21. 冒泡排序在最坏情况下的比较次数为n(n-1)/2,快速排序在最坏情况下比较次数为n^2。 以上是对计算机二级等级考试题目的解析,涵盖了程序设计、数据库、网络、操作系统等多个领域,对于准备考试的考生来说,理解...

    2021-2022计算机二级等级考试试题及答案No.15820.docx

    2. **Access 数据类型**:在Access中,不能对“备注”类型的数据进行排序或建立索引,因为这种类型通常用于存储长文本,不适合快速检索。 3. **ASP.NET 页面间传递值的方法**:在ASP.NET中,可以通过QueryString、...

    禅道项目管理软件 6.2.stable 版

    1422 删除用不到的js控件 357 dao增加count(*)的功能。 例如:$count = $this-&gt;dao-&gt;select('*')-from(TABLE_BUG)-&gt;where('status')-&gt;eq('normal')-&gt;count(); 1235 项目中新增需求时默认无需评审 1165 整理每个...

    精易模块[源码] V5.15

    9、改善“网页_访问”中最后一个参数(代理地址)为“”符号时无法访问网页,感谢易友【z00544】反馈。 精易模块 V3.82 what’s new:(20140816) 1、修复“时间_取现行时间戳”有时不能正常返回13位时间戳,当...

Global site tag (gtag.js) - Google Analytics