shellsort.c

来自「希尔排序」· C语言 代码 · 共 49 行

C
49
字号
#include <stdio.h>
#include "buildarray.c"
#include "sort.h"

unsigned long int compare=0,move=0;


void ShellSort(int *p,int n)
{
	int i,j,count=0;
	int temp,increment;
	for(increment=n/2;increment>0;increment/=2){
		for(i=increment;i<n;i++){
			temp=*(p+i);
			move++;
			for(j=i;j>=increment;j-=increment){
				if(temp<*(p+j-increment)){
					*(p+j)=*(p+j-increment);
					move++;
				}
				else{
					compare++;
					break;
				}
			}
			*(p+j)=temp;
			move++;
		}
	}
	printf("the queue sorted by shellsort is:\n");
	for(i=0;i<n;i++){
		printf("%d	",*(p+i));
		count++;
		if(count%10==0)
		printf("\n");
	}
		
}


main()
{
	//int Queue[13]={81,94,11,96,12,35,17,95,28,58,41,75,15};
	ShellSort(BuildArray(),NUM);
	//ShellSort(Queue,13);
	printf("ShellSort compare=%ld,move=%ld",compare,move);
	printf("\n");		
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?