首页 > 编程学习 > 希尔排序 ← vector实现

希尔排序 ← vector实现

发布时间:2022/11/10 22:19:16

 

 

 

 

 

 

 

 【算法代码】

#include<bits/stdc++.h>
using namespace std;

int shellSort(vector<int> &a) {
	int t,id;
	int step=a.size()/2;
	while(step) {
		for(int i=step; i<a.size(); i++) {
			t=a[i];
			id=i-step;
			while(id>=0 && t<a[id]) {
				a[id+step]=a[id];
				id=id-step;
			}
			a[id+step]=t;
		}
		step=step/2;
	}
}

int main() {
	vector<int> v;
	int n;
	cin>>n;
	for(int i=1; i<=n; i++) {
		int x;
		cin>>x;
		v.push_back(x);
	}
	shellSort(v);

	for(int i=0; i<v.size(); i++) {
		cout<<v[i]<<" ";
	}

	return 0;
}


/*
in:
8
49 38 65 97 76 13 27 49

out:
13 27 38 49 49 65 76 97
*/


 

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式