五.主要算法及相关函数功能、参数说明: voidInputData(intlist[],intn)/*数据输入。*/ voidOutputData(intlist[],intn)/*数据输出*/ voidInsertSort(intlist[],intn)/*直接插入排序算法*/ voidQuickSort(intlist[],intstart,intend,intn)/*快速排序算法*/ voidBubblessort(intlist[],intn)/*冒泡算法*/ |
九.附录: #include<stdio.h> #defineMAX50 voidInputData(intlist[],intn) { printf("inputdata:/n"); for(inti=0;i<n;i++) scanf("%d",&list[i]); } voidOutputData(intlist[],intn) { printf("/nthecurrentsoringis:"); for(intk=0;k<n;k++) printf("%4d",list[k]); } voidInsertSort(intlist[],intn) { inti,j; inttemp; for(i=0;i<n;i++) { temp=list[i]; j=i-1; while(temp<list[j]) { list[j+1]=list[j]; j--; } list[j+1]=temp; OutputData(list,n); } } voidQuickSort(intlist[],intn) { inti=start; intj=end; inttemp; intvalue=list[start]; if(start<end) { do { while(i<=end&&list[i]<=value)i++; while(j>start&&list[j]>=value)j--; if(i<j) { temp=list[i]; list[i]=list[j]; list[j]=temp; } }while(i<j); temp=list[start]; list[start]=list[j]; list[j]=temp; OutputData(list,n); QuickSort(list,start,j-1,j+1,end,n); } } voidBubblessort(intlist[],intn) { inti,j,k; for(i=0;i<n;i++) { for(j=n-1;j>i;j--) if(list[j]<list[j-1]) {k=list[j]; list[j]=list[j-1]; list[j-1]=k; OutputData(list,n); } } } } voidmain() { intnum; intlist[MAX]; printf("inputlengthofthelist(n<50):/n"); scanf("%d",&num); InputData(list,num); intlist1[MAX],list2[MAX]; for(inti=0;i<num;i++) list2[i]=list1[i]=list[i]; printf("直接插入排序:"); InsertSort(list,num); printf("/n快速排序:"); QuickSort(list1,num-1,num); printf("/n选择排序:"); SelectSort(list2,num); printf("/n"); } |