}
ey);
}
//==========主函数======
voidmain()
{
inti;
SeqListR;
input_int(R);
printf("\t********Select**********\n");
printf("\t1:
InsertSort\n");
printf("\t2:
BubbleSort\n");
printf("\t3:
QuickSort\n");
printf("\t4:
StraightSelectionSort\n");
printf("\t5:
HeapSort\n");
printf("\t6:
MergeSort\n");
printf("\t7:
Exit\n");
printf("\t***************************\n");
scanf("%d",&i);//输入整数1-7,选择排序方式
switch(i){
case1:
InsertSort(R);break;//值为1,直接插入排序
case2:
BubbleSort(R);break;//值为2,冒泡法排序
case3:
QuickSort(R,1,n);break;//值为3,快速排序
case4:
SelectSort(R);break;//值为4,直接选择排序
case5:
HeapSort(R);break;//值为5,堆排序
case6:
MergeSort(R);break;//值为6,归并排序
case7:
exit(0);//值为7,结束程序
}
printf("Sortreult:
");
output_int(R);
}
实验结果:
Pleaseinputnum(int):
10
Plaseinput10integer:
265
301
751
129
937
863
742
694
76
438
********Select**********
1:
InsertSort
2:
BubbleSort
3:
QuickSort
4:
StraightSelectionSort
5:
HeapSort
6:
MergeSort
7:
Exit
***************************
1
129,265,301,751,937,863,742,694,76,438,
129,265,301,751,863,937,742,694,76,438,
129,265,301,742,751,863,937,694,76,438,
129,265,301,694,742,751,863,937,76,438,
76,129,265,301,694,742,751,863,937,438,
76,129,265,301,438,694,742,751,863,937,
Sortreult:
76,129,265,301,438,694,742,751,863,937,
2
76,265,301,751,129,937,863,742,694,438,
76,129,265,301,751,438,937,863,742,694,
76,129,265,301,438,751,694,937,863,742,
76,129,265,301,438,694,751,742,937,863,
76,129,265,301,438,694,742,751,863,937,
Sortreult:
76,129,265,301,438,694,742,751,863,937,
3
76,129,265,751,937,863,742,694,301,438,
76,129,265,751,937,863,742,694,301,438,
76,129,265,438,301,694,742,751,863,937,
76,129,265,301,438,694,742,751,863,937,
76,129,265,301,438,694,742,751,863,937,
76,129,265,301,438,694,742,751,863,937,
Sortreult:
76,129,265,301,438,694,742,751,863,937,
4
76,301,751,129,937,863,742,694,265,438,
76,129,751,301,937,863,742,694,265,438,
76,129,265,301,937,863,742,694,751,438,
76,129,265,301,438,863,742,694,751,937,
76,129,265,301,438,694,742,863,751,937,
76,129,265,301,438,694,742,751,863,937,
Sortreult:
76,129,265,301,438,694,742,751,863,937,
5
863,694,751,265,438,301,742,129,76,937,
751,694,742,265,438,301,76,129,863,937,
742,694,301,265,438,129,76,751,863,937,
694,438,301,265,76,129,742,751,863,937,
438,265,301,129,76,694,742,751,863,937,
301,265,76,129,438,694,742,751,863,937,
265,129,76,301,438,694,742,751,863,937,
129,76,265,301,438,694,742,751,863,937,
76,129,265,301,438,694,742,751,863,937,
Sortreult:
76,129,265,301,438,694,742,751,863,937,
6
265,301,129,751,863,937,694,742,76,438,
129,265,301,751,694,742,863,937,76,438,
129,265,301,694,742,751,863,937,76,438,
76,129,265,301,438,694,742,751,863,937,
Sortreult:
76,129,265,301,438,694,742,751,863,937,
7
Pressanykeytocontinue
运行速度比较:
直接排序冒泡排序直接插入冒泡排序快速排序
时间复杂度O(n2),其中快速排序效率较高其它的效率差不多
堆排序归并排序
时间复杂度(nlogn),平均效率都很高
心得体会:
此次试验了解了各种排序的基本思想,在分析各种排序的程序代码,对程序进行调试执行等等过程中,锻炼了自己分析数据结构的能力。
此次试验然我知道排序的多种方法,也让我知道要编写好一个程序,首先要掌握其基本的思想及算法。