admin 管理员组

文章数量: 887006

蓝桥杯 基础练习 Huffuman树(C++)

前言

写这篇文章就只是想谈一下今天写蓝桥杯代码遇到的一个问题

代码展示

#include <iostream>
#include <algorithm>
using namespace std;int px(int n, int h[])
{for(int i=0;i<n-1;i++)//从小到大排序 {for(int j=i+1;j<n;j++){if(h[i]<h[j])//如果前面的小就进行交换,大在前面,小在后 {int tem;tem = h[i];h[i] = h[j];h[j] = tem;}}}
}int main()
{int h[100];int c[100];int n,sum = 0;cin>>n;for(int i=0;i<n;i++) cin>>h[i];for(int i=n-1;i>0;i--)//寻找n-1次最小值 {px(i+1, h);  //px(n, h)也正确#######################  看这里  #############################sum += (h[i]+h[i-1]);h[i-1] = h[i]+h[i-1];}cout<<sum<<endl;
}

说明

看px(i+1, h)这句代码,i+1和n都可以
因为每一次排序最小的都会被放在右面,所以没有必要去纠结排序带上之前的会不会出错
这里 想了好久

参考

参考一
参考二

本文标签: 蓝桥杯 基础练习 Huffuman树(C)