quicksort 快速排序

Posted mingzhanghui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了quicksort 快速排序相关的知识,希望对你有一定的参考价值。

javascript

function qsort(a, comp) {
	if (typeof comp==="undefined") {
		comp = function(a, b) {
			return a - b < 0;
		}
	}
	function _qsort(a, low, high) {
		if (!comp(low, high)) {
			return;
		}
		var first = low, 
			last = high,
			pivot = a[first];
		while (comp(first, last)) {
			while (comp(first, last) && !comp(a[last], pivot)) {
				--last;
			}
			a[first] = a[last];
			while (comp(first, last) && !comp(pivot, a[first])) {
				++first;
			}
			a[last] = a[first];
		}
		a[first] = pivot;
		_qsort(a, low, first-1);
		_qsort(a, first+1, high);
	}
	
	return _qsort(a, 0, a.length-1);
}

// quicksort
var a = [57, 68, 59, 52, 52, 72, 28, 96, 33, 24];
qsort(a);  
console.log(a); // [24, 28, 33, 52, 52, 57, 59, 68, 72, 96]

  

 

以上是关于quicksort 快速排序的主要内容,如果未能解决你的问题,请参考以下文章

快速排序(QuickSort)的Javascript实现

快速排序法QuickSort

快速排序

快速排序--quicksort

小白初识 - 快速排序(QuickSort)

js算法-快速排序(Quicksort)