簡單選擇排序(O(n2))
阿新 • • 發佈:2019-01-26
/*/*徐子峰大帥哥 哈哈哈哈哈*/ /*日期:2017-11-12*/ #include <iostream> using namespace std; void SelectSort(int *a, int n) { int i, j, min, temp; for (i = 1; i <= n; i++) { min = i; /* 將當前下標定義為最小值下標 */ for (j = i + 1; j <= n; j++) { /* 迴圈之後的資料 */ if (a[min] > a[j]) /* 如果有小於當前最小值的關鍵字 */ min = j; /* 將此關鍵字的下標賦值給min */ } if (i != min) { /* 若min不等於i,說明找到最小值,交換 */ temp = a[i]; /* 交換a[i]與a[min]的值 */ a[i] = a[min]; a[min] = temp; } } } int main() { int i, j, a[11]; for (i = 1; i <= 10; i++) //初始化為0 a[i] = 0; for (i = 1; i <= 10; i++) //讀入10個數 scanf("%d", &a[i]); SelectSort(a, 10); //簡單選擇排序 for (i = 1; i <= 10; i++) //輸出排序後的10個數 printf("%d ", a[i]); getchar(); getchar(); return 0; }
Input:1 5 2 3 4 5 6 8 9 10
Output:1 2 3 4 5 5 6 8 9 10
*/