選擇排序:
每一趟從待排序的
資料元素
中選出最小(或最大)的乙個元素,順序放在已排好序的數列的最後。直到所有待排序的資料元素排完。
選擇排序
是不穩定的排序方法。
選擇排序:比方在乙個長度為n的無序陣列中。在第一趟遍歷n個資料,找出當中最小的數值與第乙個元素交換,第二趟遍歷剩下的n-1個資料,找出當中最小的數值與第二個元素交換......第n-1趟遍歷剩下的2個資料,找出當中最小的數值與第n-1個元素交換。至此選擇排序完畢。
以以下5個無序的資料為例:
56 12 80 91 20(文中僅細化了第一趟的選擇過程)
第1趟:12 56 80 91 20
第2趟:12 20 80 91 56
第3趟:12 20 56 91 80
第4趟:12 20 56 80 91
**實現:
// main.m
// 演算法----選擇排序
// created by lanouhn on 14-9-16.
#import
int main(int argc, const
char * ar**)
;//為了新增可移植性(採取sizeof())計算陣列元素個數count
int count = sizeof(array) /sizeof(array[0]);
//for (int i = 0; i < count - 1; i++)
}//假設沒有比較到最後還剩餘乙個數,那麼就執行以下的操作
if (minindex != i)
}for (int i = 0; i < count; i++)
return0;
}
排序演算法之 選擇排序 二)樹形選擇排序
簡介 樹形排序也被稱為錦標賽排序 步驟 1 把n個物件的排序碼進行兩兩比較,得到n 2個排序的優勝者,作為第一步比較的結果留下來 2 然後對這n 2個物件再進行排序碼的兩兩比較,如此重複,直到選出乙個排序碼最小的物件為止。3 構建一顆包含n個結點的完全二叉樹,當二叉樹不滿 葉子結點個數為奇數 用關鍵...
ios 演算法值選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。工作原理 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。選擇排序是不穩定的排序...
排序演算法 二 選擇排序
之前給大家分享了排序演算法裡面比較簡單的氣泡排序,今天來分享一下選擇排序的演算法 選擇排序的思想 1.以公升序為例 在一組數中選出最大的數放到第乙個位置,或者選出最小的數放到最後乙個位置,2.在選取剩餘元素的最大數放到第二個位置,或選出剩餘元素中的最小值放到倒數第二哥位置,3.依次往下選取,直到遍歷...