#include <iostream> using namespace std; int main(){ int a[10]={99,1,2,3,164,5,6,71,8,4}; int max; for(int i=1;i<10;i++){ for(int j=i;j>0;j--){ if(a[j-1]>a[j]){ swap(a[j],a[j-1]); }else{ break; } } } for(int i=0;i<10;i++){ cout<<a[i]<<" "; } return 0; } //基本思想:把要排序的陣列分為已排序和未排序兩部分, //再從未排序部分逐個去除元素, //把它和已排序元素進行比較, //從右到左比較相鄰的兩個元素, //如果右邊的元素比左邊的元素小, //則交換兩個元素,並向左繼續比較和交換, //否則就停止比較。 //按此處理未排序部分的所有元素, //最終得到一個按升序排序的有序組織。 //這種演算法也叫直接插入排序