【直接選擇排序的基本思想】從
待排序的資料元素集合中選取關鍵字最小的資料元素並將它與原始資料元素集合中的第1個資料元素交換位置;然後從不包括第1個位置上資料元素的集合中選取關鍵字最小的資料元素,並將它與原始資料元素集合中的第2個資料元素交換位置;如此重複,直到資料元素集合中只剩下乙個資料元素為止。
【舉個栗子】假設陣列a中元素為38、27、2、5
,則在第一趟中,先從陣列找到關鍵字最小的資料元素,即2,將它與陣列中第1個資料元素進行交換,則第一輪後陣列變為:
2、38、27、5
同理,在第二趟中,從除了第乙個元素的陣列中找到最小的資料元素,即從38、27、5中進行直接選擇排序,則將5與38進行交換,則執行第二輪交換後陣列變為:
2、5、38、27
在第三趟中,
從除了第乙個元素和第二個元素的陣列中找到最小的資料元素,即從38、27中進行直接選擇排序,則將27與38進行交換,則執行第二輪交換後陣列變為
2、5、27、38
【實現關鍵點】直接選擇排序的實現關鍵點在於從剩餘的陣列中找到最小值,可以而用乙個k變數來指向第乙個待排序的元素,接著與後面的陣列元素進行比較,如果後面元素比k指向的元素小,則k變數指向那個元素,一輪過後,k肯定是指向待排序元素的最小值,再把k變數指向的元素與待排序陣列的第乙個元素進行交換即可。
**:
class selectionsort
}//交換
tmp = arr[i];
arr[i] = arr[k];
arr[k] = tmp;}}
}
資料結構 直接選擇排序
直接選擇排序和直接插入排序有點類似,因為在整個排序過程中都將資料分為有序區和無序區,不同的是直接插入排序是將無序區的第乙個元素直接插入到有序區中合適位置以形成乙個更大的有序區,剛開始認為有序區的長度為1,而直接選擇排序是從無序區選乙個最小的元素直接放到有序區的最後,剛開始認為它的有序區長度為0。設待...
資料結構 直接選擇排序
直接選擇排序 straight select sorting 也是一種簡單的排序方法,它的基本思想是 第一次從r 0 r n 1 中選取最小值,與r 0 交換,第二次從r 1 r n 1 中選取最小值,與r 1 交換,第i次從r i 1 r n 1 中選取最小值,與r i 1 交換,第n 1次從r ...
資料結構 選擇排序(直接選擇 堆排序)
1 選擇排序的基本思想 每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置 或末尾 直到全部待排序的資料元素排完。選擇排序可分為直接選擇排序 堆排序。2 直接選擇排序 2.1 演算法步驟 1.在元素集合array i array n 1 中選擇關鍵碼最大 小 的資料元素 2...