现在的位置: 首页 > 综合 > 正文

分治法排序

2013年10月17日 ⁄ 综合 ⁄ 共 507字 ⁄ 字号 评论关闭

算是朝花夕拾吧

$(function() {
	binsort([ 1, 3, 4, 255, 6, 5323, 27, 8 ]);

});

function binsort(arr) {

	var l = 0;
	r = arr.length - 1;

	next(arr, l, r);
	function next(arr, l, r) {

		if (l < r) {
			var m = ~~((r + l) / 2);
			next(arr, l, m);
			next(arr, m + 1, r);
			merge(arr, l, m, r);
		}

	}

	function merge(arr, l, m, r) {
		var barr = [];
		var ai = l;
		var bi = m + 1;
		var p = 0;
		console.log("ai=%d", ai);
		while (ai <= m && bi <= r) {
			barr[p++] = arr[ai] < arr[bi] ? arr[ai++] : arr[bi++];
		}
		while (ai <= m) {
			barr[p++] = arr[ai++];
		}
		while (bi <= r) {
			barr[p++] = arr[bi++];
		}
		console.log(barr.join(','));
		for ( var i = 0; i < barr.length; i++) {
			arr[l + i] = barr[i];
		}
	}

}

抱歉!评论已关闭.