c语言数组--Shell排序算法

Shell排序算法基本思想:

将n个元素的数组分成n/2个数字序列,一次循环使得每个序列排好顺序,然后再变为n/4个序列,再次排序...随着序列减少,最后变成一个,就完成了排序。(排序效率高)

#include 
#include 

static void ShellSort(int *shuzu,int shuzuLen);

void main()
{
	system("clear");
	int i=0;	
	int shuzu[11];
	srand((unsigned int)time(NULL));
	for(i=0;i<=10;i++)
	{
		shuzu[i]=rand()%100;
	}
	printf("Original is \n");
	for(i=0;i<=10;i++)
	{
		printf("%d  ",shuzu[i]);
	}
	printf("\n\n\n");
	ShellSort(shuzu,11);
}

static void ShellSort(int *shuzu,int shuzuLen)
{
	int i=0,j=0,r=0,temp=0,k=0;
	for(r=shuzuLen/2;r>0;r/=2)	
	{
		for(i=r;i<=10;i++)
		{
			temp=shuzu[i];
			j=i-r;
			while(j>=0 && temp


你可能感兴趣的:(C&C++日积月累,C程序)