一、思路
每次取剩下沒排序的數中的最小數,然後,填到對應位置。(可以使用a[0]位置作為暫存單元)
如下:
二、實現程式:
#include using namespace std;
const int maxsize = 100;
templatevoid selectsort(t arr, int n); // 選擇排序
int main(int argc, const char * ar**)
// 直接選擇排序
template void selectsort(t arr, int n)
}if(pos != i)
} // for
} // selectsort
測試資料:
720 12 50 70 2 8 40
測試結果:
排序 選擇排序(C )
1 選擇排序的核心思想是 1 第1趟排序是從第 1個元素 後面的 n 1 個元素中選擇乙個值最小於第1 個元素的元素與第 1個元素交換位置 2 第2 趟排序是從第 2個元素後面的 n 2個元素中選擇乙個值最小於第 2個元素的元素與第 2個元素交換位置 3 以此類推,知道第n 1 趟,排序結束。第 i...
選擇排序 C
選擇排序的時間複雜度為o n n 空間複雜度為o n 邏輯分析 1 假設陣列中的最小數為a 0 然後比較陣列中其他數與a 0 的大小,若a i 2 然後繼續將a 1 中存訪後面元素最小的,一直到排序完成。是不是很簡單,對,就這麼簡單。include includeusing namespace st...
c 選擇排序
每一趟從待排序的資料元素中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。選擇排序是穩定的排序方法。示例 初始關鍵字 49 38 65 97 76 13 27 49 第一趟排序後 13 38 65 97 76 49 27 49 第二趟排序後 13 27 65...