-3
我很困惑這個練習題。問題是選擇排序中的數字如何移動?
在選擇排序算法的最外層循環的前3遍之後寫入下面數組元素的狀態。
int[] numbers = {45, 78, 89, 34, 23, 12, 67, 56};
selectionSort(numbers);
after pass 1:
after pass 2:
after pass 3:
我很困惑這個練習題。問題是選擇排序中的數字如何移動?
在選擇排序算法的最外層循環的前3遍之後寫入下面數組元素的狀態。
int[] numbers = {45, 78, 89, 34, 23, 12, 67, 56};
selectionSort(numbers);
after pass 1:
after pass 2:
after pass 3:
我不會讓你確切的例子,因爲我認爲這是家庭作業,但是我會告訴你一個例子:
首先一個選擇排序的psudo代碼:
repeat (numOfElements - 1) times
set the first unsorted element as the minimum
for each of the unsorted elements
if element < currentMinimum
set element as new minimum
swap minimum with first unsorted position
實施例:
int[] numbers = {8, 23, 7, 34, 50, 15, 16};
selectionSort(numbers);
設置8作爲當前最小值,然後迭代剩餘的未分類元素以找到真正的最小值。
用第一個未分類元素(8)交換最小值(7)。
after pass 1: {7, 23, 8, 34, 50, 15, 16}
用第一個未分類元素(23)交換最小值(8)。
after pass 2: {7, 8, 23, 34, 50, 15, 16}
用第一個未分類元素(23)交換最小值(15)。
after pass 3: {7, 8, 15, 34, 50, 23, 16}
交換的最小(16)與第一未排序的元件(34)。
after pass 4: {7, 8, 15, 16, 50, 23, 34}
用第一個未分類元素(50)交換最小值(23)。
after pass 5: {7, 8, 15, 16, 23, 50, 34}
用第一個未分類元素(50)交換最小值(34)。
after pass 6: {7, 8, 15, 16, 23, 34, 50}
Sorted!
非常感謝。這很有意義。 – Aayush
你知道嗎,選擇排序是如何工作的?哈瓦一看[維基百科](https://en.wikipedia.org/wiki/Selection_sort) –
@JarlikStepsto謝謝。 – Aayush