-
大小: 285KB文件類(lèi)型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-12-03
- 語(yǔ)言: 其他
- 標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu)??
資源簡(jiǎn)介
外排序中分為兩步:初始游程的生成和有序文件的合并 請(qǐng)實(shí)現(xiàn)算法模擬初始游程的生成 假定系統(tǒng)中只能對(duì)規(guī)模為p的元素進(jìn)行排序 現(xiàn)給定m個(gè)元素 m>p 對(duì)m個(gè)元素進(jìn)行處理 給出所生成的若干個(gè)有序的初始游程
要求:
1 必須認(rèn)真復(fù)習(xí)外排序的相關(guān)知識(shí)
2 了解算法中用到的堆排序算法
3 p的大小和m個(gè)待處理數(shù)據(jù)均存放在文件input txt中;
4 輸出的若干個(gè)初始游程存放在文件output txt中 ">外排序中分為兩步:初始游程的生成和有序文件的合并 請(qǐng)實(shí)現(xiàn)算法模擬初始游程的生成 假定系統(tǒng)中只能對(duì)規(guī)模為p的元素進(jìn)行排序 現(xiàn)給定m個(gè)元素 m>p 對(duì)m個(gè)元素進(jìn)行處理 給出所生成的若干個(gè)有序的初始游程
要求:
[更多]

代碼片段和文件信息
#include
#include?
#include?“AdjustDown.h“
void?main()
{
ofstream?outf(“output.txt“);//建立一個(gè)文本文件output.txt
if(!outf)//判斷文件是否正常打開(kāi)
{
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中的內(nèi)容
if(!inf)//判斷文件是否正確打開(kāi)
{
cout<<“Cannot?open?file!“< return;
}
inf>>p;//從文件中讀取數(shù)據(jù)賦給內(nèi)存變量
for(i=0;i<18;i++)//從文件中讀取數(shù)據(jù)賦給數(shù)組a[18]
{
inf>>a[i];
}
inf.close();
int?n=p;
int?heap[18];//建立數(shù)組heap[18]
for(i=0;i {
heap[--n]=a[i];//將a[i]倒序輸入給heap數(shù)組
}
n=p;//重置n為p
CreateHeap(heapp);//調(diào)用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;//當(dāng)前堆記錄減一
heap[0]=heap[m];//當(dāng)前堆底記錄取代堆頂記錄
CreateHeap(heapm);
heap[m]=a[q];
if(m {
CreateHeap2(heappm);//調(diào)用CreateHeap2調(diào)整新堆
}
if(m<1)//當(dāng)前堆輸出完畢,當(dāng)前初始游程結(jié)束,開(kāi)始建立下一個(gè)游程
{
m=p;//重置m為p
cout< outf< outf<<++b<<“.“;//游程標(biāo)號(hào)
}
}
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,當(dāng)前堆輸出完畢,當(dāng)前初始游程完畢
{
cout< outf< if(i {
outf<<++b<<“.“;//輸出下一個(gè)游程標(biāo)號(hào)
}
heap[0]=heap[n-1];
CreateHeap(heapn-1);
}
n--;
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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
評(píng)論
共有 條評(píng)論