希尔排序

#include <iostream>
using namespace std;

void ShellSort(int n[], int l)
{
	int g= l/2;//增量,步长
	int i, j;
	for ( ; g> 0; g/= 2)
	{
		for (i= g; i< l; i++)
		{
			int t= n[i];//要插入的元素
			for (j= i; j>= g&&n[j- g]> t; j-= g)
			{
				n[j]= n[j- g];
			}
			n[j]= t;
		}
		
	}
}

int main()
{
	int t;
	cin>>t;
	int n[100000];
	int i=0;
	for (;i< t; i++)
	{
		cin>>n[i];
	}
	ShellSort(n,t);
	cout<<"排序后:"<<endl;
	for (i= 0; i< t;i++)
	{		
		cout<<n[i];
		if(i< t- 1 ) cout<<' ';
	}

	cout<<endl;
	system("pause");
	return 0;
}

  

posted @ 2013-02-12 17:23  ibos  阅读(128)  评论(0编辑  收藏  举报