#include <bits/stdc++.h> using namespace std; int main(){ string a="liuyixing"; for(double i=9;i>1;){ i=round(i/2); for(int j=0;j+i<9;j++){ if(a[j]>a[j+(int)i]){ swap(a[j],a[j+(int)i]); } } } for(int i=0;i<9;i++){ cout<<a[i]<<" "; }
//對一維陣列中的十個資料進行從小到大排序:
基本思想:是直接插入排序的進階版本
將整個待排序元素序列分割成若干個子序列
(由相隔某個“增量”的元素組成)分別進行直接插入排序然後縮減增量再進行排序
待整個序列中的元素基本有序(增量足夠小)時,在對全體元素進行一次直接插入排序