5-1.c

来自「《数据结构-使用C语言》第三版」· C语言 代码 · 共 151 行

C
151
字号
#include<stdio.h>

#define MAX 200
#define MaxQueueSize 200
typedef struct
{
	int key;
}DataType;

#include"sort.h"
long cin;
	
int main()
{
	int i, t=7;
	int b[]={0, 150, 150, 150, 150, 150, 150, 150};
	int d[MAX/10], numOfD, temp;
	DataType a[MAX], atemp[MAX];
	srand((unsigned) time(NULL));
	
	while(t)
	{
		for(i = 0; i <b[t]; i++)
		a[i].key=rand();
		
		for(i = 0; i < b[t]; i++)
		printf("%d ", a[i].key);
		printf("\n");
		printf("Number: %d\n",t);
		
		cin=0;
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		
		InsertSort(atemp, b[t]);  //插入排序 
		printf("InsertSort:\t%ld\n",cin);
		
		cin=0;
		switch(t)
		{
			case 7:
				numOfD = 2;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i] = temp;
					temp += 2;
				}
				break;
			case 6:
				numOfD = 3;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i]=temp;
					temp += 3;
				}
				break;
			case 5:
				numOfD = 5;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i]=temp;
					temp += 3;
				}
				break;
			case 4:
				numOfD = 8;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i]=temp;
					temp += 3;
				}
				break;
			case 3:
				numOfD = 10;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i]=temp;
					temp += 3;
				}
				break;
			case 2:
				numOfD = 12;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i]=temp;
					temp += 3;
				}
				break;
			case 1:
				numOfD = 15;
				temp=1;
				for(i = 0; i < numOfD; i++)
				{
					d[i]=temp;
					temp += 3;
				}
				break;
			default: printf("error!\n");
		}
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		ShellSort( atemp, b[t], d, numOfD);  //希尔排序   
		printf("ShellSort:\t%ld\n",cin);
		
		cin=0;
		SelectSort( atemp,  b[t]); //选择排序  
		printf("SelectSort:\t%ld\n",cin);
		
		cin=0;
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		HeapSort( atemp,  b[t]);  //堆排序 
		printf("HeapSort:\t%ld\n",cin);
		
		cin=0;
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		Bubble( atemp,  b[t]);  //冒泡排序  
		printf("BubbleSort:\t%ld\n",cin);
		
		cin=0;
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		QuickSort( atemp, 0, b[t]-1);  //快速排序  
		printf("QuickSort:\t%ld\n",cin);
		
		cin=0;
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		MergeSort( atemp,  b[t]);  //归并排序 
		printf("MergeSort:\t%ld\n",cin);
		
		cin=0;
		for(i = 0; i < b[t]; i++)
		atemp[i]=a[i];
		RadixSort( atemp,  b[t],  5, 10);
		printf("RadixSort:\t%ld\n",cin);
		
		t--;
		getchar();
	}
	return 0;
}
		

⌨️ 快捷键说明

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