main( ) { int i; Permute( Arr2, MaxSize ) ; Copy( Arr1, Arr2, MaxSize ); Heapsort( Arr1, MaxSize ); Checksort( Arr1, MaxSize ); return 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); }
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; }
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'; } } }