#include <iostream> using namespace std; //插入排序 /** 一句箴言:將選擇待排序數據分爲"已排序區"和 "待排序區"。 依次將待排序區元素與已排序區數據對比,尋找合適的插入位置 方法:從已排序元素倒着對比,若待排序元素小於當前比較元素,則互換位置。 若待排序元素大於當前比較元素,則說明已經該元素就該在此位置 **/ void insertSort(int arr[], int n) { //該循環爲待排序區元素,從1開始是由於默認將第一個元素做爲了已排序區元素 for (int i = 1; i < n; i++) { //此循環是爲了和已排序區元素倒着對比,並兩兩互換 for (int j = i; j >= 0; j--) { if (arr[j] < arr[j-1]) { swap(arr[j], arr[j-1]); } else { break; } } } } int main() { int arr[10] = {9,10,8,7,6,5,4,3,2,1}; insertSort(arr, 10); for(int i =0; i< 10; i++) { cout << arr[i] << " "; } return 0; }