【数据结构】算法10.2 插入排序-折半插入
来源:互联网 发布:vscode前端必备插件 编辑:程序博客网 时间:2024/05/28 03:02
#include<stdio.h>#include<string.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define EQ(a,b) ((a) == (b))#define LT(a,b) ((a) < (b))#define LQ(a,b) ((a) <= (b))typedef int Status;typedef int ElemType;#define MAXSIZE 20typedef int KeyType;typedef char InfoType;typedef struct{ KeyType key; InfoType otherinfo;}RedType;typedef struct{ RedType r[MAXSIZE+1]; //0号单元置空或用作哨兵 int length;}SqList;/*******************************声明部分****************************************/void BInsertSort(SqList *L);//对顺序表L折半插入排序Status CreateSqList(SqList *L);//创建顺序表Status TraverseSqList(SqList L);//打印顺序表/*******************************函数部分****************************************/void BInsertSort(SqList *L){ int i,j,low,high,m; for(i = 2;i <= L->length;++i){ L->r[0] = L->r[i]; low = 1; high = i-1; while(low <= high){ m = (low+high)/2; if(LT(L->r[0].key , L->r[m].key)) high = m-1; else low = m+1; }//while for(j = i-1; j >= high+1; --j) L->r[j+1] = L->r[j]; //后移 L->r[high+1] = L->r[0]; //插入 }//for}Status CreateSqList(SqList *L){ /* int i; printf("请输入长度:"); scanf("%d",&L->length); for(i = 1;i <= L->length;i++){ printf("请输入关键值:"); scanf("%d",&L->r[i].key); }*/ L->r[1].key = 49; L->r[2].key = 38; L->r[3].key = 65; L->r[4].key = 97; L->r[5].key = 76; L->r[6].key = 13; L->r[7].key = 27; L->length = 7; return OK;}Status TraverseSqList(SqList L){ int i; for(i = 1;i<=L.length;i++) printf("%d ",L.r[i].key); printf("\n"); return OK;}/*******************************主函数部分**************************************/int main(){ SqList L; printf("创建一个顺序表:\n"); CreateSqList(&L); TraverseSqList(L); printf("\n折半插入排序后:\n"); BInsertSort(&L); TraverseSqList(L);}
0 0
- 【数据结构】算法10.2 插入排序-折半插入
- 数据结构-折半插入排序
- [数据结构]折半插入排序
- 数据结构 折半插入排序
- 数据结构与算法简记:折半插入排序
- 数据结构排序算法——折半插入
- 数据结构与算法---直接折半插入排序
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 数据结构-排序: 折半插入排序
- 数据结构-插入排序-折半插入排序
- 数据结构之 折半插入排序
- 数据结构实验 折半插入排序
- 排序算法------折半插入排序
- 常用的一些Android代码
- Failed to read schema document 'http://www.springframework.org/schema/beans/spring- beans-3.2.xsd'
- NSUserDefaults的使用
- unexpected token: Member
- crontab文件的位置
- 【数据结构】算法10.2 插入排序-折半插入
- HDU 3729 二分图匹配
- memcache详细解读
- SVD
- yii2表单
- 【poj 3254】Corn Fields 状压动规
- 【数据结构】算法10.3 插入排序-表插入
- 分布式session会话Sticky Sessions
- 启动tomcat错误 找不到bean