资源简介
外排序中分为两步:初始游程的生成和有序文件的合并 请实现算法模拟初始游程的生成 假定系统中只能对规模为p的元素进行排序 现给定m个元素 m>p 对m个元素进行处理 给出所生成的若干个有序的初始游程
要求:
1 必须认真复习外排序的相关知识
2 了解算法中用到的堆排序算法
3 p的大小和m个待处理数据均存放在文件input txt中;
4 输出的若干个初始游程存放在文件output txt中 ">外排序中分为两步:初始游程的生成和有序文件的合并 请实现算法模拟初始游程的生成 假定系统中只能对规模为p的元素进行排序 现给定m个元素 m>p 对m个元素进行处理 给出所生成的若干个有序的初始游程
要求:
[更多]
代码片段和文件信息
#include
#include
#include “AdjustDown.h“
void main()
{
ofstream outf(“output.txt“);//建立一个文本文件output.txt
if(!outf)//判断文件是否正常打开
{
cout<<“Cannot open file!“< return;
}
outf<<“Here is the result:“< int i=0;
int a[18];
int p=0;
ifstream inf(“input.txt“);//读取input.txt中的内容
if(!inf)//判断文件是否正确打开
{
cout<<“Cannot open file!“< return;
}
inf>>p;//从文件中读取数据赋给内存变量
for(i=0;i<18;i++)//从文件中读取数据赋给数组a[18]
{
inf>>a[i];
}
inf.close();
int n=p;
int heap[18];//建立数组heap[18]
for(i=0;i {
heap[--n]=a[i];//将a[i]倒序输入给heap数组
}
n=p;//重置n为p
CreateHeap(heapp);//调用CreateHeap建堆
int m = p;
int q =p;
int b=1;
outf< for(i=0;i<18-n;i++){
cout< outf< if(a[q]>=heap[0])
{
heap[0]= a[q];
CreateHeap(heapm);
}
else
{
m = m-1;//当前堆记录减一
heap[0]=heap[m];//当前堆底记录取代堆顶记录
CreateHeap(heapm);
heap[m]=a[q];
if(m {
CreateHeap2(heappm);//调用CreateHeap2调整新堆
}
if(m<1)//当前堆输出完毕,当前初始游程结束,开始建立下一个游程
{
m=p;//重置m为p
cout< outf< outf<<++b<<“.“;//游程标号
}
}
q++;
}
for(i=0;i{
cout< outf< m--;
if(m>0)
{
cout< heap[0]=heap[m];
CreateHeap(heapm);
heap[m]=heap[n-1];
}
else if(m<0)
{
cout< heap[0]=heap[n-1];
CreateHeap(heapn-1);
}
else//m=0,当前堆输出完毕,当前初始游程完毕
{
cout< outf< if(i {
outf<<++b<<“.“;//输出下一个游程标号
}
heap[0]=heap[n-1];
CreateHeap(heapn-1);
}
n--;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-10-22 20:07 初始游程\
文件 538 2012-05-01 22:55 初始游程\AdjustDown.h
文件 4374 2012-05-01 23:08 初始游程\B09040121.dsp
文件 543 2012-05-01 22:49 初始游程\B09040121.dsw
文件 50176 2012-09-10 14:09 初始游程\B09040121.ncb
文件 48640 2012-09-10 14:09 初始游程\B09040121.opt
文件 901 2012-05-01 23:04 初始游程\B09040121.plg
目录 0 2014-10-22 20:07 初始游程\Debug\
文件 225378 2012-05-01 23:04 初始游程\Debug\B09040121.exe
文件 262992 2012-05-01 23:04 初始游程\Debug\B09040121.ilk
文件 274332 2012-05-01 23:04 初始游程\Debug\B09040121.pch
文件 443392 2012-05-01 23:04 初始游程\Debug\B09040121.pdb
文件 13579 2012-05-01 23:04 初始游程\Debug\main.obj
文件 41984 2012-09-10 14:09 初始游程\Debug\vc60.idb
文件 61440 2012-05-01 23:04 初始游程\Debug\vc60.pdb
文件 70 2012-05-01 23:02 初始游程\input.txt
文件 2026 2012-05-01 22:55 初始游程\main.cpp
文件 118 2012-09-10 14:09 初始游程\output.txt
- 上一篇:路由分组转发仿真系统的设计与实现
- 下一篇:StewartShapiro数学哲学
相关资源
- 数据结构年终考题范围和答案 耿国华
- 数据结构 朱战力 习题解答 数据结构
- 数据结构课程设计 6 1 彩票系统
- 教学计划编制系统
- 大数(链表、数组)实现
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- 航空订票系统_数据结构课程设计
- 多项式求和(数据结构C 版)
- 尚观培训linux董亮老师关于数据结构的
- 数据结构 知识点总结
- 华南理工大学数据结构复习提纲二
- 华南理工大学数据结构复习提纲一
- 数据结构用C 写的停车场系统源代码
- 数据结构(河北科技大学)
- 数据结构考前习题 清华大学出版社
- 数据结构课件(北邮)
- 数据结构实验 基于栈的表达式求值
- 数据结构课程设计——图书管理系统
- 成绩管理系统(数据结构)
- 数据结构-最小通信网问题
- 数据结构课程设计同学通讯录系统
- 数据结构课程设计 公园导游图
- 数据结构殷人昆版的课后答案
- 2006年湖北工业大学409数据结构试题
- 数据结构实验-魔王语言-源码加实验报
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- Fundamentals of Data Structure in C
- 北京邮电大学数据结构历年考研真题
评论
共有 条评论