1、介紹。
在簡單選擇排序過程中,所需移動記錄的次數比較少。最好情況下,即待排序記錄初始狀態就已經是正序排列了,則不需要移動記錄。最壞情況下,即待排序記錄初始狀態是按第一條記錄最小,之後的記錄從小到大順序排列,則需要移動記錄的次數最多為3(n-1)。簡單選擇排序過程中需要進行的比較次數與初始狀態下待排序的記錄序列的排列情況無關。當i=1時,需進行n-1次比較;當i=2時,需進行n-2次比較;依次類推,共需要進行的比較次數是(n-1)+(n-2)+…+2+1=n(n-1)/2,即進行比較操作的時間複雜度為o(n^2),進行移動操作的時間複雜度為o(n)。
簡單選擇排序是不穩定排序,不需要額外記憶體,空間複雜度o(1)。時間複雜度,最佳情況:o(n^2) 最差情況:o(n^2) 平均情況:o(n^2)。
2、步驟。
(1)初始狀態:無序區為r[1..n],有序區為空;
(2)第i趟排序(i=1,2,3…n-1)開始時,當前有序區和無序區分別為r[1..i-1]和r(i..n)。該趟排序從當前無序區中-選出關鍵字最小的記錄 r[k],將它與無序區的第1個記錄r交換,使r[1..i]和r[i+1..n)分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區;
(3)n-1趟結束,陣列有序化了。
3、**。
public static void main(string args)
簡單排序 選擇排序
package cnic.cn.impl public class selectionsort change array out swap value array out array max array max change output for int i 0 i 9 i 選擇排序的效率問題 選擇...
簡單排序 選擇排序
首先,我們應該了解什麼是選擇,其本質是從乙個陣列裡面的第乙個數開始,和後面的數開始比較,找到乙個最小的數,然後,讓他和第乙個數交換。然後又從第二個數開始,以此類推,直到遍歷完全g。要明白怎樣可以通過不斷地比較,將最小的數字比較出來,第一次比較之後,將最小的數往前移動,但是後面可能還會 有更小的數,所...
簡單排序之選擇排序
口訣 兩兩相比 每輪取最小數交換 外層n 1 內層 i 1 n 優化 相比氣泡排序,雖然比較次數沒變,但是交換次數減少了。package sort 選擇排序 public class selection system.out.println 未排序前 for int i 0 i array.leng...