2022年数据结构排序问题C语言 .pdf
《2022年数据结构排序问题C语言 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构排序问题C语言 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构排序算法(C描述) (1)冒泡排序; (2)选择排序; (3)插入排序; (4)快速排序; (5)堆排序; (6)归并排序;#include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR #define OVERFLOW -2 #define MAXSIZE 20 /一个用作示例的小顺序表的最大长度#define LT(a,b) (a)(b) #define LQ(a,b) (a)=(b) typedef int KeyType;/定义关键字类型为整数类型typedef int InfoType;
2、typedef struct KeyType key;/关键字项InfoType otherinfo;/其他数据项RedType;/ 记录类型typedef struct 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - RedType rMAXSIZE+1;/r0闲置或用作哨兵单元int length;/顺序表长度SqList;/顺序表类型int InitList_Sq(SqList &L) / 构造一个空的顺序表L。int i
3、; printf(请输入待排序的记录的个数:); scanf(%d,&L.length); printf(请输入待排序的记录的关键字(整型数):); for(i=1;i=L.length;i+) scanf(%d,&L.ri); return OK; void Print_Sq(SqList &L) /输出 int i; for(i=1;i=L.length;i+) printf(%4d,L.ri); printf(n); /-插入排序 - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
4、 第 2 页,共 9 页 - - - - - - - - - void InsertSort(SqList &L) / 对顺序表 L 作直接插入排序。int i,j; for(i=2;i=L.length;+i) if(LT(L.ri.key,L.ri-1.key)/“”,需将 L.ri插入有序子表 L.r0=L.ri;/复制为哨兵L.ri=L.ri-1; for(j=i-2;LT(L.r0.key,L.rj.key);-j) L.rj+1=L.rj;/记录后移L.rj+1=L.r0;/插入到正确位置 /-冒泡排序 - void BubbleSort(SqList &L) /L.r是待排序的文
5、件,采用自下向上扫描,对L.r 做冒泡排序int i,j; int exchange; / 交换标志for(i=1;i=i;j-) / 对当前无序区 Ri.n 自下向上扫描if(LT(L.rj+1.key,L.rj.key) / 交换记录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - L.r0=L.rj+1; /L.r0不是哨兵,仅做暂存单元L.rj+1=L.rj; L.rj=L.r0; exchange=TRUE; / 发生了
6、交换,故将交换标志置为真 if(!exchange) / 本趟排序未发生交换,提前终止算法return; /-快速排序 - int Partition(SqList &L,int low,int high) / 交换顺序表 L 中子表 rlow.high的记录,枢轴记录到位,并返回其所在位置,此时/ 在它之前(后)的记录均不大(小)于它。KeyType pivotkey; L.r0=L.rlow;/用子表的第一个记录作枢轴记录pivotkey=L.rlow.key;/枢轴记录关键字while(lowhigh) / 从表的两端交替地向中间扫描while (low=pivotkey) -high;
7、 L.rlow=L.rhigh;/将比枢轴记录小的记录移到低端while (lowhigh&L.rlow.key=pivotkey) +low; L.rhigh=L.rlow;/将比枢轴记录大的记录移到高端 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - L.rlow=L.r0;/枢轴记录到位return low;/返回枢轴位置 void QSort(SqList &L,int low,int high) / 对顺序表 L 中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构排序问题C语言 2022 数据结构 排序 问题 语言
限制150内