| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 392 人关注过本帖
标题:能不能帮忙看一下我编的这个堆排序
只看楼主 加入收藏
joyparkko
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2013-8-31
结帖率:0
收藏
 问题点数:0 回复次数:2 
能不能帮忙看一下我编的这个堆排序
用的是VS2012,一运行就死循环了,不知道是什么问题。
#include <iostream>
void heapadjust(int a[],int i,int length)
{
    for(int child=2*i+1;i<=length/2-1;i=child)
    {
        if(a[child]>a[child+1]&&child<length-1)
        child=child+1;
        if(a[child]>a[i])
        {
            int temp;
            temp=a[i];
            a[i]=a[child];
            a[child]=temp;
        }
    }
}
void buildheap(int a[],int length)
{
    int i=length/2-1;
    for (;i>0;i--)
    {
        heapadjust(a,i,length);
    }
}
void heapsort(int a[],int length)
{
    int temp;
    int i=length;
    for(i=length;i>0;i--)
    {
        buildheap(a,i);
        temp=a[0];
        a[0]=a[i];
        a[i]=temp;
    }
}
void main()
{
    int a[]={10,15,56,25,30,70,12,3,92,32};
    std::cout<<"original array= ";
        for(int i=0;i<10;i++)
        {
            std::cout<<a[i]<<" ";
        }
        std::cout<<"\n";
        heapsort(a,10);
    std::cout<<"current array= ";
        for(int i=0;i<10;i++)
        {
            std::cout<<a[i]<<" ";
        }
        std::cout<<"\n";
        system ("pause");
}
搜索更多相关主题的帖子: include 
2013-09-09 06:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9011
专家分:53957
注 册:2011-1-18
收藏
得分:0 
没工夫仔细看,如果你只是想用堆排序的话,直接用 std::make_heap
2013-09-09 09:53
超神级
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2013-7-25
收藏
得分:0 
高手!学习了!数组这方面看着就晕
2013-09-09 11:55
快速回复:能不能帮忙看一下我编的这个堆排序
数据加载中...
 
   



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

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