Пример #1
0
int main()
{
    int i, n;
    scanf("%d", &n);
    union Int32 *arr = (union Int32*)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i].x);
    }
    Radixsort(arr, n);
    print(&arr[0], n);
    free(arr);
    return 0;
}
Пример #2
0
void main() {
	Seqlist S;
	int i;
	char ch1,ch2;
	printf("请输入10个待排序数据:(每个数据间用空格隔开)\n");
	for(i=1; i<=n; i++)
		scanf("%d",&S[i].key);
	ch1='y';
	while (ch1=='y' || ch1=='Y') {
		printf("*****************菜单***********************\n");
		printf("请选择下列*作:\n");
		printf("1------------------更新待排序数据-----------\n");
		printf("2------------------直接插入排序-------------\n");
		printf("3------------------冒泡排序-----------------\n");
		printf("4------------------快速排序-----------------\n");
		printf("5------------------直接选择排序-------------\n");
		printf("6------------------堆排序-------------------\n");
		printf("7------------------归并排序-----------------\n");
		printf("8------------------基数排序-----------------\n");
		printf("9------------------退出---------------------\n");
		printf("请选择*作类别(1-9):");
		scanf("\n%c",&ch2);
		switch (ch2) {
		case '1':
			printf("请输入更新待排序数据:\n");
			for (i=1; i<=n; i++)
				scanf ("%d",&S[i].key);
			break;
		case '2':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=1; i<=n; i++)
				R[i].key=S[i].key;
			Insertsort();
			break;
		case '3':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=1; i<n+1; i++)
				R[i].key=S[i].key;
			Bubblesort();
			break;
		case '4':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=1; i<n+1; i++)
				R[i].key=S[i].key;
			num=0;
			Quicksort(1,n);
			break;
		case '5':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=1; i<n+1; i++)
				R[i].key=S[i].key;
			Selectsort();
			break;
		case '6':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=1; i<n+1; i++)
				R[i].key=S[i].key;
			Heapsort();
			break;
		case '7':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=1; i<n+1; i++)
				R[i].key=S[i].key;
			Mergesort();
			break;
		case '8':
			printf("请输入要输出第几趟结果:");
			scanf("\n%d",&m);
			for (i=0; i<n; i++)
				R[i].key=S[i+1].key;
			Radixsort();
			break;
		case '9':
			ch1='n';
			break;
		default:
			ch1='n';
		}
	}
}