题解 | #哈夫曼树#
哈夫曼树
https://www.nowcoder.com/practice/162753046d5f47c7aac01a5b2fcda155
#include <stdio.h>
void swap(int &a,int &b){
int p = a;
a = b;
b = p;
}
int main() {
int n,num[1000];
int count=0;
while (scanf("%d", &n) != EOF) {
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
for(int i=0;i<n-1;i++)
for(int j=0;j<n-i-1;j++)
if(num[j]>num[j+1]) swap(num[j],num[j+1]);
for(int i=0;i<n-1;i++){
for(int j=i;j<n-1;j++)
if(num[j]>num[j+1]) swap(num[j],num[j+1]);
count += num[i]+num[i+1];
num[i+1] += num[i];
}
printf("%d\n",count);
}
return 0;
}
自认为直接用冒泡排序改造一下,会比用复杂的数据结构更简单
