C ++選擇排序演算法
阿新 • • 發佈:2019-01-29
選擇排序的原理:每一輪從待排序的元素中選出最小元素,放在已排好序的序列後面,直到全部元素排序完畢。
#include <iostream> #include <stdlib.h> using namespace std; /*******************************************/ /* 選擇排序 /******************************************/ void swap(int array[], int i, int min) //位置互換函式 { int temp = array[i]; array[i] = array[min]; array[min] = temp; } void SelectionSort(int array[], int n) //選擇排序函式 { for (int i = 0; i < n - 1; i++) { int min = i; //假設min是陣列最小的元素 for (int j = i + 1; j < n; j++) { if (array[j] < array[min]) { min = j; //儲存當前找到的最小元素 } } swap(array[i], array[min]); //呼叫swap函式進行位置互換 } } int main(void) //主程式 { const int n = 6; //陣列元素的數量 cout << "請輸入6個整數: " << endl; int array[n]; for (int i = 0; i < n; i++) { cin >> array[i]; } SelectionSort(array, n); //呼叫SelectionSort函式,進行比較 cout << endl; //換行 cout << "由小到大的順序排列後: " << endl; for (int i = 0; i < 6; i++) { cout << "Array" << "[" << i << "]" << " = " << array[i] << endl; } cout << endl << endl; //換行 system("pause"); //除錯時,黑視窗不會閃退,一直保持 return 0; }
執行結果: