不明的排序算法

时间:2013-06-11 14:08:33

标签: javascript sorting

有没有人认识到这种排序算法?我已经在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

1 个答案:

答案 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²)仍有可怕的表现。