2017-03-05 62 views
-3

我很困惑這個練習題。問題是選擇排序中的數字如何移動?

在選擇排序算法的最外層循環的前3遍之後寫入下面數組元素的狀態。

int[] numbers = {45, 78, 89, 34, 23, 12, 67, 56}; 
selectionSort(numbers); 

after pass 1: 
after pass 2: 
after pass 3: 
+0

你知道嗎,選擇排序是如何工作的?哈瓦一看[維基百科](https://en.wikipedia.org/wiki/Selection_sort) –

+0

@JarlikStepsto謝謝。 – Aayush

回答

0

我不會讓你確切的例子,因爲我認爲這是家庭作業,但是我會告訴你一個例子:

首先一個選擇排序的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!

+1

非常感謝。這很有意義。 – Aayush