我是靠谱客的博主 强健冰淇淋,最近开发中收集的这篇文章主要介绍Javascript快速排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

快速排序的基本思想是通过一趟排序,将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可以分别对这两部分记录继续进行排序,以达到整个序列有序。

算法步骤:
1.从数列中挑出一个元素,称为 “哨兵”(sentry),
2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>

		<script>
			function quickSort(left, right) {
				if (left < right) {
					let sentry = getSentry(left, right);
					quickSort(left, sentry);
					quickSort(sentry + 1, right);
				}
			}
			
			function getSentry(left, right) {
				let sentry = arr[left],i = left,j = right;
				while (i < j) {
					while (i < j && arr[j] >= sentry)
						j--;
					arr[i] = arr[j];
					while (i < j && arr[i] <= sentry)
						i++;
					arr[j] = arr[i];
				}
				arr[i] = sentry;
				return i;
			}
			
			let arr = [5, 4, 8, 9, 7, 2, 3, 1, 6];
			quickSort(0, arr.length - 1);
			console.log(arr); //[1,2,3,4,5,6,7,8,9]
		</script>
	</body>
</html>

最后

以上就是强健冰淇淋为你收集整理的Javascript快速排序的全部内容,希望文章能够帮你解决Javascript快速排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部