有没有人认识到这种排序算法?我已经在javascript中为它提供了代码,您可以在此链接http://jsfiddle.net/EBC6T/6/
上看到它var unsortedArr=[4,3,2,1];
var swap=function(arr,i,j){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
};
var theUnknownSort=function(arr){
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length;j++){
if(arr[i]>arr[j]){
swap(arr,i,j);
document.getElementById('test').innerHTML += "<li>"+arr+"</li>";
}
}
}
};
theUnknownSort(unsortedArr);
排序顺序:
3,4,2,1
2,4,3,1
1,4,3,2
1,3,4,2
1,2,4,3
1,2,3,4
答案 0 :(得分:2)
这是selection sort的天真形式,因为它会立即交换索引而不是仅仅记住索引并在内循环完成后交换一次。
改进形式是:
for(all i in array){
for (all j==i+1 in array){
compare i to all j, remember lowest number minj
}
swap(i,minj) if minj<i
}
O(n²)
仍有可怕的表现。