JavaScript快速排序

news/2024/5/19 22:49:49 标签: javascript, 快速排序

快速排序思想:

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

快速排序代码如下:

	<script type="text/javascript">
		var arr = [3, 23, 66, 32, 2, 77, 45, 87, 64, 34, 33];
		function quick_sort(arr,low,high) {
			if(low < high) {
				var i = low;
				var j = high
				var flag = arr[i];
				while(i < j) {
					while(i < j&&arr[j]>=flag){
						j--;
					}
					if(arr[j]<flag){
						arr[i]=arr[j];
					}
					while(i < j&&arr[i]<=flag){
						i++;
					}
					if(arr[i]>flag){
						arr[j]=arr[i];
					}
				}
				arr[i]=flag;
				quick_sort(arr,low,i-1);
				quick_sort(arr,i+1,high)
			}
		}
		quick_sort(arr,0,10);
		console.log(arr);
	</script>

结果如下:
这里写图片描述


http://www.niftyadmin.cn/n/508460.html

相关文章

[1, 2, 3].map(parseInt)

1.parseInt() 用来解析字符串&#xff0c;返回整数&#xff0c;有几个特点&#xff1a; 1、无视被解析字符串最前和最后的空格&#xff0c;即&#xff1a;” 111 “和”111”是一样的 2、正规格式&#xff1a;parseInt(string,radix) 第一个参数是被解析的字符串&#xff0…

利用canvas绘制钟表

利用canvas绘制一个钟表&#xff0c;钟表的指针是可以根据当前时间自己动的哦&#xff01; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><canvas id"canvas" wid…

插入排序与交换排序

1.插入排序 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置&#xff0c;直到全部插入完毕。 a. 直接插入排序 其基本操作是将一条记录插入到已排好序的有序表中&#xff0c;从而得到一个新的、记录数量增一的有序表。 算法时间复杂度O(n^2)…

计算机网络的五层协议的体系结构

五层协议的体系结构从上往下依次为&#xff1a;应用层、运输层、网络层、数据链路层、物理层。 1.应用层 任务&#xff1a;通过应用进程间的交互来完成特定网络应用。 应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。 万维网的应用…

操作系统复习总结

1.操作系统的基本特征 1、并发 两个或多个事件在同一时间间隔内发生。 注&#xff1a;注意区9分并发与并行&#xff0c;并行是两个或多个事件在同一时刻发生。 2、共享 系统中的资源可供内存中多个并发执行的进程&#xff08;线程&#xff09;共同使用。 3、虚拟 通过时…

ER图

ER图分为实体、属性、关系三个核心部分。实体是长方形体现&#xff0c;而属性则是椭圆形&#xff0c;关系为菱形。 ER图的实体&#xff08;entity&#xff09;即数据模型中的数据对象&#xff0c;例如人、学生、音乐都可以作为一个数据对象&#xff0c;用长方体来表示&#xff…

数据库左连接右连接

一般所说的左连接&#xff0c;外连接是指左外连接&#xff0c;右外连接。 1、先说左外连接和右外连接&#xff1a; 先来查看一下我们要测试的两个表的数据&#xff1a; select * from t1; id name1aaa2bbb select * from t2; idage130 对于左外联接&#xff1a; SQL LEFT JOIN…

前端面试问题总结

HTML 1、XHTML和HTML有什么区别 1&#xff09;HTML是一种基本的web网页设计语言&#xff0c;XHTML是基于XML&#xff08;可扩展标记语言&#xff09;的置标语言 2&#xff09;XHTML 元素必须被正确地嵌套&#xff0c; 元素必须被关闭&#xff0c;标签名必须用小写字母&#xff…