2010-07-03 99 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

這幾乎是選擇排序,除非你不與當前元素交換的最小剩餘元素,但是你掉剩餘的每個元素,它比當前元件的電流變小,直到當前元素是最小的。