Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342212
  • 博文数量: 122
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1191
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-24 11:12
文章分类

全部博文(122)

文章存档

2010年(122)

我的朋友

分类: C/C++

2010-05-17 12:25:10

#include<iostream>
using namespace std;
void HeapAdjust(int H[] ,int s,int m)
{
 int rc=H[s];
 int j;
 for(j=s*2;j<=m;j*=2)
 {
  if(j<m && H[j]<H[j+1])
   j++;
  if(rc>H[j])break;
  H[s]=H[j];
  s=j;
 }
 H[s]=rc;
}
void HeapSort(int H[],int length)
{
 for(int i=length/2;i>0;--i)
 {
  HeapAdjust(H,i,length);
 }
 for(i=length;i>1;--i)
 {
  int temp;
  temp=H[1];H[1]=H[i];H[i]=temp;
  HeapAdjust(H,1,i-1);
 }
}
int main()
{
 int H[11]={0,9,8,5,6,4,7,1,3,2,10};
 HeapSort(H,10);
 for(int i=1;i<=10;i++)
  cout<<H[i]<<" ";
 cout<<endl;
 return 0;
}


阅读(722) | 评论(0) | 转发(0) |
0

上一篇:gdb调试命令

下一篇:memcpy和memmove

给主人留下些什么吧!~~