希尔排序

#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]<<" ";
	}

  //对一维数组中的十个数据进行从小到大排序:

基本思想:是直接插入排序的进阶版本

将整个待排序元素序列分割成若干个子序列

(由相隔某个“增量”的元素组成)分别进行直接插入排序然后缩减增量再进行排序

待整个序列中的元素基本有序(增量足够小)时,在对全体元素进行一次直接插入排序

posted @ 2024-04-20 09:15  fushuxuan1  阅读(21)  评论(0)    收藏  举报