几种常见的排序算法的实现与性能分析数据结构课程设计报告 联系客服

发布时间 : 星期四 文章几种常见的排序算法的实现与性能分析数据结构课程设计报告更新完毕开始阅读a202d9189b6648d7c0c7464b

}

for(i=1;i<=L;i++) {

case '1':Insertsort();break; case '2':Shellsort();break; case '3':Bubblesort();break;

printf(\尚未排序的数据为(回车继续):\ for(k=1;k<=L;k++)

printf(\ num=0;QuickSort(1,L); break;

getchar();printf(\R[i]=s[i]; switch(ch2)

case '4':

case '5':Selectsort();break; case '0':ch1='n';break;

default:printf(\输入错误!请重新输入!\\n\\t\\t\

case '6':Heap();break;

if(ch2!='0') {

if(ch2=='2'||ch2=='3'||ch2=='4'||ch2=='5'||ch2=='6'||ch2=='7'||ch2=='8') } }

8

printf(\排序演示输出完毕!\\n\q=getchar(); if (q!='\\xA') {

getchar();ch1='n'; }

printf(\请按回车键返回主菜单...\

}

开始 输入要排序的一组元素 int i,j,k,m=0 k=1 N k<=L Y printf(“],”R[k]);

k++ getchar(); i=2 i<=L Y Y Maltiplex i++ N printf(“/n/n”); Maltiplex 结束

9

4.22直接排序关键字比较次数和移动次数的流程图

此函数void Insertsort()的程序代码如下:

void Insertsort()//直接插入排序 { int i,j,k,m=0; printf(\尚未排序的数据为(回车继续):\

for(k=1;k<=L;k++)

printf(\getchar(); printf(\for(i=2;i<=L;i++) { if(R[i]

{

times++; changes++; R[j+1]=R[j];j--; }

R[j+1]=R[0];

changes++;

}

m++; times++;

}

printf(\ printf(\最终排序结果为:\

for(i=1;i<=L;i++)

printf(\printf(\

10

printf(\直接插入排序的比较次数为%d\ printf(\直接插入排序的移动次数为%d\ times=0; changes=0; }

开始 输入要排序的一组元素 初始化变量i,j,gap=L/2,m=0 m小于gap i小于元素总个数 j=i+gap j小于元素总个数 第i个元素大于第j个元素 交换第i个元素第j个元素 gap为原来的一半

11