文档库

最新最全的文档下载
当前位置:文档库 > 数据结构8645归并排序(非递归算法)

数据结构8645归并排序(非递归算法)

#include

#define MAXSIZE 100

typedef int Keytype;

typedef struct

{

Keytype key;

} recordtype;

typedef struct

{

recordtype r[MAXSIZE+1];

int length;

} table;

void visit(table *t)

{

int i;

for(i=1; i<=t->length; i++)

printf("%d ",t->r[i].key);

}

void merge(table *tabs,table *tabg,int u,int m,int v) {

int i,j,k,t;

i=u;

j=m+1;

k=u;

while(i<=m&&j<=v)

{

if(tabs->r[i].key<=tabs->r[j].key)

{

tabg->r[k]=tabs->r[i];

i++;

}

else

{

tabg->r[k]=tabs->r[j];

j++;

}

k++;

}

if(i<=m)

for(t=i; t<=m; t++)

tabg->r[k+t-i]=tabs->r[t];

else

for(t=j; t<=v; t++)

tabg->r[k+t-j]=tabs->r[t];

}

void mergepass(table *tabs,table *tabg,int len) {

int i,j,n;

n=tabg->length=tabs->length;

i=1;

while(i<=n-2*len+1)

{

merge(tabs,tabg,i,i+len-1,i+2*len-1);

i=i+2*len;

}

if(i+len-1

merge(tabs,tabg,i,i+len-1,n);

else

for(j=i; j<=n; j++)

tabg->r[j]=tabs->r[j];

}

void mergesort(table *tab)

{

int len;

table temp;

len=1;

while(lenlength)

{

mergepass(tab,&temp,len);

visit(&temp);

printf("\n");

len=2*len;

*tab=temp;

}

}

int main()

{

int i;

table tab;

scanf("%d",&tab.length);

for(i=1; i<=tab.length; i++)

scanf("%d",&tab.r[i].key);

mergesort(&tab);

return 0;

}

数据结构归并排序
算法与数据结构实验报告 实验六 实验名称: 归并排序问题 姓名: 学号: 专业:...
数据结构实验-归并排序算法
数据结构实验-归并排序算法_物理_自然科学_专业资料。大连理工大学实验预习报告学...
大数据数据结构和算法_排序_归并排序(外部排序)
大数据数据结构和算法_排序_归并排序(外部排序)_互联网_IT/计算机_专业资料。大数据数据结构 数据结构和算法第17课 排序-归并排序(外部排序) 排序本课时目标: ?...
C语言版数据结构 归并排序
C语言版数据结构 归并排序_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载 | 举报文档 C语言版数据结构 归并排序_计算机软件及应用_IT/计算机......
数据结构-排序-两路归并排序算法
数据结构-排序-两路归并排序算法_数学_自然科学_专业资料 人阅读|次下载 数据结构-排序-两路归并排序算法_数学_自然科学_专业资料。数据结构-排序-两路归并排序......
数据结构第32讲--基数排序、归并排序--2018
数据结构第32讲--基数排序、归并排序--2018_理学_高等教育_教育专区。河海大学计算机与信息学院 第8章 排序 第32讲:基数排序、归并排序 8.5 分配排序 ? 分配......
基于java数据结构实验 快速排序,归并排序,堆排)
基于java数据结构实验 快速排序,归并排序,堆排)_计算机软件及应用_IT/计算机_专业资料。实验报告 课程名称 数据结构 实验名称 试验八 排序 2 学生学号 姓名 实验......
数据结构课程设计各种排序算法比较 附带源代码
在表示范围外,当实验数据扩大到一 定数值后会有相应时间显示) 通过数据不难看出 6 种排序方法处理一组相同数据时,快速排序处理速度最快堆排序次之, 归并排序最......
数据结构排序总结
数据结构排序总结_动物植物_PPT模板_实用文档。排序总结 liangyus@ Agenda ? 名次排序 ? 选择排序 ? 冒泡排序 ? 插入排序 ? 基数排序 ? 堆排序 ?...
数据结构各种排序算法总结
归并排序 mergeSort 利用递归,不断的分割数组,然后归并有序数组 效率为 O(N*logN),缺点是需要在存储器中有一个大小等于被排序的数据项数目的数组。 public void......
数据结构习题精编:排序
数据结构习题精编:排序 一、选择题 1.下列排序方法中,稳定的排序方法是 A.堆排序 B.希尔排序 C.快速排序 D.直接插入排序 2.下列排序方法中,不稳定的排序方法......
南华大学 数据结构课程实验报告-归并排序技术
南华大学计算机科学与技术学院 实验报告( 2015 ~ 2016 学年度 第 1 学期 ) 课程名称 实验名称 数据结构 归并排序技术 姓名 刘让洲 专业 计算机类 地点 8-606 ......
数据结构各种排序实验报告
数据进行每组 s 个数的归并排序; //i 为要合并两组元素的第一个数位置; //第一组数据先排完的情况 //将第一组数据与第二组数据分别比较; //依次排列......
数据结构排序部分练习题
A.快速排序 B.堆排序 C.归并排序 D.基数排序 3.下列排序算法中,当初始数据有序时,花费时间反而最多的是( )。 A.起泡排序 B.希尔排序 C.堆排序 D.快速......
数据结构排序综合
描述:此次的任务是利用随机函数产生 N 个随机整数,对这些数进行多种方法进 行排序,分别是插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并 排序)......
数据结构算法排序总结
在本次数据结构 与算法的学习中最令我深刻的是关于几种排序算法的学习, 所以在这里我想对我 本学期所学习的这几种排序算法做一个比较详细的总结。 首先我们要......
数据结构》内部排序12种算法上机实验报告
成都信息工程学院计算机系课 程实验报告 实验课程: 数据结构 实验项目: 实现算法的全排序 指导教师: 学生姓名: 学生学号: 班级: 计算机工程 1 班 实验地点: ......
数据结构实验报告记录(四):实现典型的排序算法
数据结构 实现典型的排序算法 10 网络工程 2 姓名 张珂卿 成绩 学号 2010394212 日期 2011.11.27 一、实验目的 1.掌握排序的基本概念; 2.熟悉排序中使用的存储......
数据结构实验四题目一排序实验报告
北京邮电大学信息与通信工程学院 实验名称: 实验四——排序 学生:XX 班级: 班序号: 学号: 日期: 数据结构实验报告 1.实验要求 实验目的: 通过选择实验容中的两......