數據結構和算法教學
環境設置
數據結構算法基礎
數據結構漸近分析
數據結構基本概念
數組
哈希表
哈希表實例程序(C語言)
鏈表
鏈表實例程序(C語言)
雙向鏈表
循環鏈表
循環鏈表實例程序(C語言)
堆棧
堆棧實例代碼(C語言)
表達式分析
隊列
隊列實例代碼(C語言)
隊列優先級
線性搜索(查找)
線性搜索實例程序(C語言)
二進制搜索(查找)
二進制搜索/查找程序(C語言)
冒泡排序算法
冒泡排序算法實例程序(C語言)
插入排序
選擇排序
選擇排序實例程序(C語言)
合併排序算法
合併排序算法實例程序(C語言)
希爾排序
希爾排序實例程序(C程序)
快速排序
快速排序實例程序(C語言)
圖數據結構
深度優先遍歷
廣度優先遍歷
樹(二叉樹)
樹遍歷
二叉搜索樹
堆
遞歸基礎知識
選擇排序
選擇排序是一個簡單的排序算法。這個排序算法是一個基於就地比較算法,其中列表被分爲兩部分,排序部分,左端和右端未分類的一部分。最初排序的部分是空的,未分類的部分是整個列表。
最小的元素是從無序數組選擇並交換,使用最左邊的元素,以及元素變成有序數組的一部分。此過程繼續由一個元素向右移動無序數組的邊界。
該算法是不適合大的數據集,作爲它平均值和最壞情況的複雜性是 O(n2) 其中n是項目的數量。
僞代碼
Selection Sort ( A: array of item)
procedure selectionSort( A : array of items )
int indexMin
for i = 1 to length(A) - 1 inclusive do:
/* set current element as minimum*/
indexMin = i
/* check the element to be minimum */
for j = i+1 to length(A) - 1 inclusive do:
if(intArray\[j\] < intArray\[indexMin\]){
indexMin = j;
}
end for
/\* swap the minimum element with the current element\*/
if(indexMin != i) then
swap(A\[indexMin\],A\[i\])
end if
end for
end procedure
要查看C編程語言選擇排序的實現,請點擊這裏