常用算法-直接選擇排序

 

 直接選擇排序(Straight Select Sorting) 也是一種簡單的排序方法,它的基本思想是:第一次從R[0]~R[n-1]中選取最小值,與R[0]交換,第二次從R{1}~R[n-1]中選取最小值,與R[2]交換,....,

  第i次從R[i-1]~R[n-1]中選取最小值,與R[i-1]交換,.....,第n-1次從R[n-2]~R[n-1]中選取最小值,與R[n-2]交換,總共通過n-1次,得到一個按排序碼從小到大排列的有序序列.

 

 

 在直接選擇排序中,共需要進行n-1次選擇和交換,每次選擇需要進行 n-i 次比較 (1<=i<=n-1),而每次交換最多需要3次移動,因此,總的比較次數C=1/2(n*n - n),

  總的移動次數 3(n-1).由此可知,直接選擇排序的時間複雜度爲 O(n2) (n的平方),所以當記錄佔用字節數較多時,通常比直接插入排序的執行速度快些。

  由於在直接選擇排序中存在着不相鄰元素之間的互換,因此,直接選擇排序是一種不穩定的排序方法。

 

發佈了56 篇原創文章 · 獲贊 8 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章