2010-07-03 67 views
1
int aux; 

     for(int i=0;i<array.Count()-1;i++) 
     { 
      for(int j=i+1;j<array.Count();j++) 
      { 
       if(array[i] > array[j]) 
       { 
        aux = array[j]; 
        array[j] = array[i]; 
        array[i] = aux; 
       } 
      } 
     } 

回答

8

这是虚弱的selection sort。而不是交换array[i]之后的最小元素,而是将它与每个较小的元素交换。最终,正确的元素显然会处于正确的位置,并且您的代码写得更少。

这是少了很多有效的,因为更多的掉期进行,但它基本上选择排序。

+0

为什么downvote? – IVlad 2010-07-03 20:08:39

+0

我没有downvote。感谢你的回答。这是一段代码,我用Java写在高中的时候,我想到了它首先必须整理东西的时候。我不知道排序算法存在的当时或至少教我从来就没想到。我刚刚发现它并将其转换为C#。它仍然工作。 – Para 2010-07-03 20:34:29

1

这几乎是选择排序,除非你不与当前元素交换的最小剩余元素,但是你掉剩余的每个元素,它比当前元件的电流变小,直到当前元素是最小的。