开始 输入要排序的一组元素 初始化变量priot,low,high Low小于high Y 第high个元素大 于priot Y 第low个元素与第high个元素交换 High减1 第low个元素小于priot Y 第high个元素与第low个元素交换 Low++ 输出关键字的比较次数和移动次数 结束 4.25快速排序关键字比较次数和移动次数的流程图
此函数int Partition(int i,int j) 的程序代码如下:
16
int Partition(int i,int j) //快速排序 { }
void QuickSort(int low,int high) {
int pirot=R[i]; while(i while(i { R[i++]=R[j]; changes++; } while(i int pirotpos,k,i; if (low pirotpos=Partition(low,high); 17 } num++; QuickSort(low,pirotpos-1); QuickSort(pirotpos+1,high); printf(\for(i=1;i<=L;i++) printf(\printf(\ printf(\最终排序结果为:\\n\ printf(\快速排序的比较次数为%d\printf(\快速排序的移动次数为%d\times=0; changes=0; } 18 开始 i=1,j=1 输入要排序的一组元素 定义临时中间变量h,并赋初值 N i<元数总个数 Y h记下目前找到的最小关键字所在的位置 i=i+1 在无序区R[i-n]中选h最小记录R[h] 做第i趟排序 输出比较次数和移动次数 交换R[i]和R[h] 结束 4.26选择排序关键字比较次数和移动次数的流程图 此函数void Selectsort() 的程序代码如下: 19
相关推荐: