| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1187 人关注过本帖
标题:我把书上的“堆排序”(Heap Sort)编程实现了
只看楼主 加入收藏
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
 问题点数:0 回复次数:0 
我把书上的“堆排序”(Heap Sort)编程实现了

#include"iostream"

#include"iomanip"

using namespace std;

void FixHeap(int list[],int root,int key,int bound){

int i,vacant,largerChild;

vacant=root;

while(2*vacant<=bound){

largerChild=2*vacant;

if(largerChild<bound&&list[largerChild+1]>list[largerChild])

largerChild=largerChild+1;

if(key>list[largerChild])

break;

else{

list[vacant]=list[largerChild];

vacant=largerChild;

}//else

}//while

list[vacant]=key;

cout<<"The new list is:\n";

for(i=1;i<=100;i++){//output the list

cout<<setw(2)<<list[i]<<" ";

if(i%10==0)

cout<<"\n";

}//for

}//FixHeap

void HeapSort(int List[],int N){

int i,max;

for(i=N/2;i>=1;i--)

FixHeap(List,i,List[i],N);

for(i=N;i>=2;i--){

max=List[1];

FixHeap(List,1,List[i],i-1);

List[i]=max;

}//for

}//HeapSort

int main(){

int a[101],i;

a[0]=0;

for(i=1;i<101;i++){

a[i]=rand()%100;

a[0]++;

}//for

cout<<"\nThe original elements are:\n";

for(i=1;i<101;i++){

cout<<setw(2)<<a[i]<<" ";

if(i%10==0)

cout<<"\n";

}//for

cout<<endl<<endl;

HeapSort(a,100);

return 0;

}//main

搜索更多相关主题的帖子: Heap Sort Roman 
2004-11-22 03:35
快速回复:我把书上的“堆排序”(Heap Sort)编程实现了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016528 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved