示例#1
0
        main( )
        {
            int i;

			Permute( Arr2, MaxSize  ) ;
            Copy( Arr1, Arr2, MaxSize );
            Heapsort( Arr1, MaxSize );
            Checksort( Arr1, MaxSize );

            return 0;
        }
示例#2
0
int main()
{
	ElementType a[] = {34, 8, 64, 51, 32, 21, 3};
	int i = 0;
	
	PRINT_INT_ARRAY(a, sizeof(a)/sizeof(a[0]), i);
	Heapsort(a, sizeof(a)/sizeof(a[0]));
	PRINT_INT_ARRAY(a, sizeof(a)/sizeof(a[0]), i);
	
	return 0;
}
void main()
{
    int i;
    int dlta[max];
    SqList l,a,b,c,d,e,f;
    CreateSq(&l);
    a=b=c=d=e=f=l;
    BubbleSort(&a);
    SelectSort(&b);
    QuickSort(&c);
    ShellSort(&d,dlta);
    Heapsort(&e);
    insertsort(&f);
}
示例#4
0
int Kruskal(Graph *g)
{
    int steps = 0;
    unsigned int Parent[VERTICES];
    unsigned int Rank[VERTICES];
    unsigned int r1,r2;
    Knode edge;
    //Step1: Heapsort make heap is already called
    // in main loop.

    steps=+Heapsort(&(g->node_list));
    //do makeset
    for(unsigned int v=0;v<VERTICES;v++)
    {
        make_set(Parent,Rank,v);
        steps++;
    }
    //perform the main algo
    for(unsigned int i=0;i<g->EDGES;i++)
    {
        //greedily pick the next edge
        edge = g->node_list[i];
        //find operation
        r1 = Find(Parent,edge.u,&steps);
        r2 = Find(Parent,edge.v,&steps);
       // cout<<edge.u<<" e "<<edge.v<<" "<<edge.weight<<" "<<r1<<" "<<r2<<endl;
        if(r1!=r2)
        {
            //Union those two edges
            Union(Parent,Rank,r1,r2);
            //Mark those edges in_tree status
            IN_MST[edge.v][edge.u]=true;
            IN_MST[edge.u][edge.v]=true;
        }
        //just discard it.
        steps++;
    }
    return steps;
}
示例#5
0
文件: e11.cpp 项目: cqiyi/kaoshi
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';
		}
	}
}