2016-12-22 115 views
-1

你們可以解釋/模擬選擇排序算法,我傾向於在交換價值的部分丟失。謝謝!選擇排序C#

這裏是代碼:

int[] ars = new int[4] { 5, 3, 10, 6 }; 
int min, tempo; 
for (int i = 0; i < ars.Length -1; i++) 
{ 
    min = i; 
    for(int ii = i + 1; ii < ars.Length; ii++) 
    if (ars[ii] < ars[min]) 
    { 
     min = ii; 
    } 
    tempo = ars[min]; 
    ars[min] = ars[i]; 
    ars[i] = tempo; 
} 
+2

寫每一個步驟寫在紙上,看看在選擇排序發生 – Icepickle

+1

維基百科頁面有這個算法https://en.wikipedia.org/wiki/Selection_sort的真的很不錯的可視化可能是它可以幫助你。 –

+0

你也可以看看這個:https://www.youtube.com/watch?v = kPRA0W1kECg – oldovets

回答

0

它會遍歷列表,並互換當前項與列表的其餘最低的發現,但只有當它比目前的項目低。


首先,您需要在複製該值之前'記住'舊值。

// create copy of the previous value 
tempo = ars[min]; 
// overwrite the old value. 
ars[min] = ars[i]; 
// recall the previous value and assign it to the other in the array 
ars[i] = tempo;