内部排序算法比较(2)

2019-02-15 15:33

数据结构课程设计

typedef struct {

ElemType *elem; int length;

}SqList;//分配顺序存储结构 4.2伪随机产生数据模块

伪随机产生数据模块可实现伪随机产生不同数目的数据以供排序,运用顺序存储结构来实现的。该模块具体实现程序流程如图2所示。

开始int i;输入要要比较的数据个数Nn>20000Yprintf(\超出范围重新输入!!!\\n\L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));N!L.elemYexit(0); L.length=0;i=1;Ni20000Y ++L.length;结束

图2 伪随机产生数据模块

4

数据结构课程设计

4.3简单选择排序模块

简单选择排序模块可实现用简单排序法对产生的数据进行排序。该模块具体实现程序流程如图3所示。

开始start_t=clock();int i,j,k,com=0,mov=0;i=1;Ni

图3 简单选择模块

5

数据结构课程设计

4.4冒泡排序模块

冒泡排序模块可实现运用起泡排序法对数据进行排序,该模块具体实现程序流程如图4所示。

开始start_t=clock();int i=0,j,com=0,mov=0;NiL.elem[j+1].keyYL.elem[0].key=L.elem[j].key; L.elem[j].key=L.elem[j+1].key; L.elem[j+1].key=L.elem[0].key;N mov+=3;i++;end_t=clock();t1=(double)(end_t-start_t)/CLK_TCK;输出com,mov,t1A[1]=com; B[1]=mov; C[1]=t1;结束 图4 冒泡排序模块

6

数据结构课程设计

4.5直接插入排序模块

直接插入排序模块可实现运用直接插入排序法对数据进行排序,该模块具体实现程序流程如图5所示。

开始start_t=clock(); int i,j,com=0,mov=0;i=2;Ni<=L.length;YNi++L.elem[i].key

7

数据结构课程设计

4.6希尔排序模块

希尔排序模块可实现运用希尔排序法对数据进行排序,该模块具体实现程序流程如图6所示。

开始start_t=clock();int i,d=L.length/2,j,w=0,k,com=0,mov=0;NYw=1;wL.elem[j].keyY k=j; com++;Ni!=kY L.elem[0].key=L.elem[i].key; L.elem[i].key=L.elem[k].key; L.elem[k].key=L.elem[0].key; mov+=3;w++;d=d/2; w=1;end_t=clock();t3=(double)(end_t-start_t)/CLK_TCK;输出com,mov,t3A[3]=com; B[3]=mov; C[3]=t3;结束

图6 希尔排序模块

8


内部排序算法比较(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高等数学 解题步骤

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: