18
2018
08

选择排序

考虑排序存储在数组A中的n个数:首先找出A中的最小的元素并将其与A[0]中的元素进行交换,接着,找出A中的次最小元素并将其与A[1]中的元素进行交换,对A中的前n-1个元素按该方式继续。该算法成为选择排序。

代码如下:

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
a.sort(function(){return Math.random()>0.5;});

console.log(a.join("\t"));
selectionSort(a);
console.log(a.join("\t"));

function selectionSort(a){
	var len = a.length;
	for(var i = 0; i < len - 1; i++){
		var mi = i;
		var m = a[i];
		for(var j = i + 1; j < len; j++){
			if(a[j] < m){
				m = a[j];
				mi = j;
			}
		}
		a[mi] = a[i];
		a[i] = m;
	}
}

时间复杂度:O(n^2)。



« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。