数据结构之内排序(包括快速排序,希尔,归并排序,插入排序,选择排序等)
更新时间:2023-10-25 00:49:01 阅读量: 综合文库 文档下载
- 数据结构快速排序怎么排序推荐度:
- 相关推荐
目录
#include
///这么多的排序,只有归并排序过了
#include
包含的头文件及定义结构体
#include
typedef int KeyType; //定义关键字类型 typedef char InfoType[10];
typedef struct //记录类型 { KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType } RecType;
///快速排序 //排序的记录类型定义
void QuickSort(RecType R[],int s,int t) //对R[s]至R[t]的元素进行快速排序 { int i=s,j=t; RecType tmp; if (s } } tmp=R[s]; //用区间的第1个记录作为基准 while (i!=j) //从区间两端交替向中间扫描,直至i=j为止 { while(j>i && R[j].key>tmp.key) j--; //从右向左扫描,找第1个小于tmp.key的R[j] R[i]=R[j]; //找到这样的R[j],R[i]\交换 while (i R[i]=tmp; QuickSort(R,s,i-1); //对左区间递归排序 QuickSort(R,i+1,t); //对右区间递归排序 ///直接插入排序 void sift(RecType R[],int low,int high) { int i=low,j=2*i; //R[j]是R[i]的左孩子 RecType temp=R[i]; while (j<=high) { if (j R[i]=temp; //被筛选结点的值放入最终位置 } void InsertSort(RecType R[],int n) //对R[0..n-1]按递增有序进行直接插入排序 { int i,j,k; RecType temp; for (i=1;i } temp=R[i]; j=i-1; //从右向左在有序区R[0..i-1]中找R[i]的插入位置 while (j>=0 && temp.key R[j+1]=R[j]; //将关键字大于R[i].key的记录后移 j--; } R[j+1]=temp; //在j+1处插入R[i] //printf(\ } for (k=0;k ///插入排序的改版 void InsertSort1(RecType R[],int n) //对R[0..n-1]按递增有序进行直接插入排序 { int i,j,low,high,mid; RecType tmp; for (i=1;i } ///归并排序 void Merge(RecType R[],int low,int mid,int high) { RecType *R1; int i=low,j=mid+1,k=0; //k是R1的下标,i、j分别为第1、2段的下标 R1=(RecType *)malloc((high-low+1)*sizeof(RecType)); //动态分配空间 while (i<=mid && j<=high) //在第1段和第2段均未扫描完时循环 if (R[i].key<=R[j].key) //将第1段中的记录放入R1中 { R1[k]=R[i]; i++;k++; } else //将第2段中的记录放入R1中 { R1[k]=R[j]; j++;k++; } while (i<=mid) //将第1段余下部分复制到R1 { R1[k]=R[i]; i++;k++; } //将第2段余下部分复制到R1 while (j<=high) { R1[k]=R[j]; j++;k++; } for (k=0,i=low;i<=high;k++,i++) //将R1复制回R中 R[i]=R1[k]; } void MergeSortDC(RecType R[],int low,int high) //对R[low..high]进行二路归并排序 { int mid; if (low } void MergeSort1(RecType R[],int n) { MergeSortDC(R,0,n-1); } //自顶向下的二路归并算法 希尔排序算法 void ShellSort(RecType R[],int n) // { int i,j,gap,k; RecType tmp; gap=n/2; //增量置初值 while (gap>0) { for (i=gap;i 选择排序 void SelectSort(RecType R[],int n) { int i,j,k,l; RecType temp; for (i=0;i
正在阅读:
数据结构之内排序(包括快速排序,希尔,归并排序,插入排序,选择排序等)10-25
浅谈人民币升值对股市的影响 -10-09
期末冲刺王七年级语文试卷答案.doc05-06
Mark Twain mirror of america11-18
高一基本函数综合测试题及答案解析05-10
中捷希望小学建档立卡贫困生帮扶计划09-05
九年级物理期中测试卷05-21
谈心谈话记录6则_范文07-31
南开17春秋学期《会展经营管理》在线作业04-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 排序
- 希尔
- 归并
- 数据结构
- 插入
- 之内
- 包括
- 快速
- 选择
- 医院感染护理学答案1
- 关于加强劳动用工管理工作的意见
- C语言程序设计实验报告
- ANSYS HFSS三维全波电磁场仿真及Wiseteam图形工作站方案
- 当前农村干部存在的问题及对策
- 高等数学试卷(一)
- 防汛防台应急预案
- 2013智慧东城东城区党委系统政务内网协同办公及门户网站建设项目(第三册)v1.5
- 天津文综精校版-2011普通高等学校招生统一考试
- 望江县安监局学习贯彻党代会精神 突出抓好四项重点工作
- 2015-2016学年度北师大版小学五年级数学下册第二单元测试卷
- 人教版地理八年级上册第三章第一、二节复习提纲
- 操作系统试卷2008B - 完成版 - 图文
- 学校后勤工作简报
- 全民守法是依法治国的基础
- 小数乘除法易错题统计
- 关于“教师综合评价”的分析报告
- 学籍管理系统详细设计说明书
- 初中语文必背文学常识大全 - 图文
- 网上零食管理系统需求规格说明书