希尔排序
#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]<<" ";
}
//对一维数组中的十个数据进行从小到大排序:
基本思想:是直接插入排序的进阶版本
将整个待排序元素序列分割成若干个子序列
(由相隔某个“增量”的元素组成)分别进行直接插入排序然后缩减增量再进行排序
待整个序列中的元素基本有序(增量足够小)时,在对全体元素进行一次直接插入排序

浙公网安备 33010602011771号