C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc

C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc

ID:55304043

大小:25.50 KB

页数:6页

时间:2020-05-09

C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc_第1页
C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc_第2页
C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc_第3页
C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc_第4页
C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc_第5页
资源描述:

《C++实现:冒泡排序--希尔排序--快速排序--堆--归并排序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include"stdio.h"#include"stdlib.h"#include"time.h"#include"windows.h"#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineOVERFLOW-2typedefintStatus,KeyType;structRedType{KeyTypekey;//关键字项};//记录类型structSqList{RedType*r;//r[0]闲置或用作哨兵单元intlength;//顺序表长度};//顺序表类型/////

2、///////////////////////////////////////////////////////////////StatusCreateList(SqList&L,intnum){L.r=(RedType*)malloc(sizeof(RedType)*(num+1));if(!L.r)exit(OVERFLOW);L.length=num;returnOK;}KeyTypeValueList(SqList&L,intnum,KeyType*m){if(!L.r)returnERROR;inti;for(i=1;i<

3、=num;i++){printf("请输入第%d个数:",i);scanf("%d",&L.r[i].key);m[i]=L.r[i].key;}return*m;}StatusReValueList(SqList&L,KeyType*key,intnum){if(!L.r)returnERROR;for(inti=1;i<=num;i++)L.r[i].key=key[i];returnOK;}StatusOutputList(SqListL){if(!L.r)returnERROR;intlength=L.length,i;f

4、or(i=1;length;length--,i++)printf("%dt",L.r[i].key);returnOK;}////////////////////////////////////////////////////////////////////StatusBubble_sort(SqListL,intflag){inti,j,change,t,count=0,move=0;for(i=L.length,change=TRUE;i>=1&&change;--i){change=FALSE;for(j=0;j

5、+j)if(count++,L.r[j].key>L.r[j+1].key)move++,t=L.r[j].key,L.r[j].key=L.r[j+1].key,L.r[j+1].key=t,change=TRUE;}if(flag)printf("

6、

7、——>>冒泡排序后顺序表为:"),OutputList(L);printf("

8、

9、——>>冒泡排序比较次数%d移动次数%d",count,move);returnOK;}///////////////////////////////////////////////////

10、/////////////////StatusShellInsert(SqList&L,intdk,int&count,int&move){inti,j;for(i=dk+1;i<=L.length;++i)if(count++,L.r[i].key0&&(count++,L.r[0].key

11、hell_Sort(SqListL,intdlta[],intnum,intflag){intk,count=0,move=0;for(k=0;k

12、

13、——>>希尔排序后顺序表为:"),OutputList(L);printf("

14、

15、——>>希尔排序比较次数%d移动次数%d",count,move);returnOK;}/////////////////////////////////////////////

16、///////////////////////StatusPartition(SqList&L,intlow,inthigh,int&count,int&move){L.r[0]=L.r[low];KeyTypepivotkey;pivotkey=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。