演算法一之簡單選擇排序

2022-07-20 15:24:13 字數 708 閱讀 5398

選擇排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。基於此思想的演算法主要有簡單選擇排序、樹型選擇排序和堆排序。

簡單選擇排序的基本思想:第1趟,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;第2趟,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i趟在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。

簡單演算法:

public

void selectionsort(int

data)

} }

}

優化的演算法:

public

void selectionsort(int

data)

} //最小記錄不在下標i處,互交換資料

if(minindex!=i)

}}

簡單選擇排序中,所需進行記錄移動的操作次數較少,其最小值為「0」,最大值為3(n-1)。

最好時間o(n2),最壞時間o(n2),平均時間o(n2)。輔助儲存o(1),不穩定,n小時較好。

然而,無論記錄的初始序列如何,所需進行的關鍵字間的比較次數相同,均為n(n-1)/2,因此,總的時間複雜度為o(n2)。

排序演算法之簡單選擇排序

簡單選擇排序演算法,它的概念就是在要排序的一組數中,選出最小 或者最大 的一 個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後 乙個數 比較為止。這個演算法是很容易理解的,那麼,直接上 最下面的乙個...

排序演算法之簡單選擇排序

學習 輕鬆學演算法 簡單選擇排序 簡單選擇排序的思想很簡單,假設我們要從小到大排序,那麼我們可以這樣 從未排序的數列中找到最小的數,放在第乙個位置,讓原來在第乙個位置上的數放到最小數的位置,那麼第乙個位置上就是最小數,他是有序的。接著在剩下的未排序的數列中,再找到最小數,放在第二個位置,讓原來第二個...

排序演算法之簡單選擇排序

演算法思路 這個真的是超級簡單的演算法,從陣列起點開始,每次迴圈都確定陣列的乙個空間存什麼,裡面的巢狀迴圈 每次都要遍歷未排序的部分來找到最小的數字,退出這個小迴圈後,將這個最小值放到當前操作的陣列下標中。package choice 簡單排序演算法 思路 從每個點開始算起,將每個點與後面的點比較選...