常用的選擇排序方法有簡單選擇排序和堆排序,這裡只說簡單選擇排序,堆排序後面再說。
設所排序序列的記錄個數為n,i 取 1,2,…,n-1 。
從所有n-i+1個記錄(ri,ri+1,…,rn)中找出排序碼最小(或最大)的記錄,與第i個記錄交換。執行n-1趟 後就完成了記錄序列的排序。
以排序陣列{3,2,1,4,6,5}為例
在簡單選擇排序過程中,所需移動記錄的次數比較少。最好情況下,即待排序記錄初始狀態就已經是正序排列了,則不需要移動記錄。
最壞情況下,即待排序記錄初始狀態是按第一條記錄最大,之後的記錄從小到大順序排列,則需要移動記錄的次數最多為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)。
簡單選擇排序是不穩定排序。
public
static
void
main(string args) ;
******sort(number);
for(int i = 0; i < number.length; i++)
}public
static
void
******sort(int arr) }}
文中** 資料結構 排序 選擇排序
選擇排序 所謂選擇排序,就是不斷從剩下的元素中選擇最小的元素放入前面,那麼 前面 我們就從下標為 0 i 0 的第乙個元素開始 此時我們假設下標為 0 的元素是最小的,minindex 0,minindex 就是最小值的索引 相應的剩下的元素則從 i 1 的位置開始,也就是從 1 開始,然後依次與 ...
資料結構 排序(選擇排序)
排序 選擇排序法 include include include include 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法 ...
資料結構 選擇排序
選擇排序是一種比較直觀的排序方法 選擇排序的思想在於 預設公升序排序 在乙個陣列當中,選擇這個陣列當中最小的元素,將這個元素放在第一位,然後尋找第二小的元素,將這個元素放在第二位。以此類推,直到將這個陣列完成排序。這是乙個比較直觀的排序方法 選擇排序 演算法思想 在遍歷陣列的時候 找出陣列當中最小的...