選擇排序:在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n-1個資料,找出其中最小的數值與第二個元素交換......第n-1趟遍歷剩下的2個資料,找出其中最小的數值與第n-1個元素交換,至此選擇排序完成。
平均時間複雜度:o(n2)
空間複雜度:o(1) (用於交換和記錄索引)
穩定性:不穩定 (比如序列【5, 5, 3】第一趟就將第乙個[5]與[3]交換,導致第乙個5挪動到第二個5後面)
1 #include2intmain()3;
5int count = sizeof(array) / sizeof(array[0
]);6
for (int i = 0; i < count - 1; i++) 12}
13if (minindex !=i) 19}
20for (int i = 0; i < count; i++)
23return0;
24 }
排序演算法 排序演算法之選擇排序
最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...
排序演算法之選擇排序 選擇排序 堆排序
直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 void selectionsort int a,int len swap a min a left 如果最大數的下標在為left,證明要交換的最大數已經被 換到min小標所表示的位置,只需要將right和min...
排序演算法之選擇排序
一 簡單選擇排序 1 基本思想 在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。簡單選擇排序的示例 2 操作方法 第一趟,從n 個記錄中...