考虑排序存储在数组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)。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。