m0_60346415 2022-12-01 00:35 采纳率: 100%
浏览 57
已结题

C语言 堆排序 数据结构

c语言堆排序,输出不了结果

#include <stdio.h>
#include <stdlib.h>

void swap(int *a,int *b)
{
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}

void heapify(int arr[],int n,int i)
{
    int low=i;
    int lchild=i*2+1;
    int rchild=i*2+2;
    if(lchild<n&&arr[lchild]<arr[low])
        low=lchild;
    if(rchild<n&&arr[rchild]<arr[low])
        low=rchild;
    if(low!=i)
        swap(&arr[i],&arr[low]);
    heapify(arr,n,low);
}

void B_heap(int arr[],int n)
{
    for(int i=n/2-1;i>=0;i--)
    {
        heapify(arr,n,i);
    }    
    for(int i=n-1;i>0;i--)
    {
        swap(&arr[0],&arr[i]);
        heapify(arr,i,0);
    }    
}


int main() 
{
    int arr[8]={6,11,12,16,14,15,10};
    int n=7;
    B_heap(arr,n);
    for(int i=0;i<n;i++)
    {
        printf("%d\n",arr[i]);
    }
    return 0;
}
  • 写回答

8条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 12月9日
      • 已采纳回答 12月1日
      • 修改了问题 12月1日
      • 创建了问题 12月1日

      悬赏问题

      • ¥15 关于企业微信,调用官方 微盘api 时候access_token过期的问题?
      • ¥15 请问这个C语言代码的界面怎样修改
      • ¥15 QT for Android 开发的App后台切换后卡死,没有响应
      • ¥15 【Coppeliasim】利用remoteApi实现Coppeliasim与C++程序的数据通讯
      • ¥15 Spring Boot 服务迁移到 k8s , 配置文件 eureka.instance.prefer-ip-address = true,注册在 eureka 依然是服务名称
      • ¥15 No module named 'pyLDAvis'
      • ¥15 Microsoft.ReportViewer.WinForms 预览打印显示
      • ¥15 C#点到对岸的距离,各距离线段即垂直于下方斜线
      • ¥50 R语言时间序列 滚动窗口预测
      • ¥15 Python不使用Selenium怎么实现网页输入和点击