#include <iostream> using namespace std; //選擇排序 /** 一句箴言:選擇待排序數據分爲"已排序區"和 "待排序區"。 找出待排序區最小的元素並放到已排序區末尾 方法:查找到最小元素的索引位置,而後和未排序區第一個元素交換位置便可 **/ void selectSort(int arr[], int n) { for (int i = 0; i < n; i++) { //默認每次待排序中第一個最小 int minIndex = i; //循環遍歷待排序區全部元素,找到最小值對應的索引 for(int j = i+1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } //最小值和待排序中第一個值互換 swap(arr[i], arr[minIndex]); } } int main() { int arr[10] = {10,9,8,7,13,5,4,3,2,1}; selectSort(arr, 10); for(int i =0; i< 10; i++) { cout << arr[i] << " "; } return 0; }