表递归排序,pivotloc是枢轴位置Р QSort(L,pivotloc+1,high);//对高子表递归排序Р?}Р}Рvoid QuickSort(SqList &L)Р{//对顺序表L做快速排序Р?QSort(L,1,L.length);Р}Рvoid SelectSort(SqList &L)Р{//对顺序表L作简单选择排序Р?int i,j,k;Р?for(i=1;i<L.length;i++)//选择第i小的记录,并交换到位Р?{Р k=i;Р for(j=i+1;j<L.length;j++)//在L.r[i…L.length]中选择key最小的记录Р {Р if(L.r[j].key<L.r[k].key)Р {Р k=j;Р }Р }Р if(i!=k)//与第i个记录交换Р {Р L.r[0].key=L.r[i].key;Р L.r[i].key=L.r[k].key;Р L.r[k].key=L.r[0].key;Р }Р?}Р}Рvoid OutPut(SqList L)//输出顺序表Р{Р?int i;Р?for(i=1;i<=L.length;i++)Р?{Р printf("%d ",L.r[i].key);Р?}Р?printf("\n");Р}Рvoid main()//主程序Р{Р?SqList L;Р?InPut(L);//创建线性表LР?printf("插入排序法:\n");Р?InsertSort(L);//对L进行插入排序Р?OutPut(L);//输出线性表LР?printf("交换排序法:\n");Р?QuickSort(L);//对L进行交换排序Р?OutPut(L);//输出线性表LР?printf("选择排序法:\n");Р?SelectSort(L);//对L进行选择排序Р?OutPut(L);//输出线性表LР}