zoukankan      html  css  js  c++  java
  • 哈夫曼树的应用-金条划分

    /*
    老板给员工发工资,分成n份,每切一刀收取所划分原长度的价格,用花费最少的方案
    权重最优问题,哈夫曼树
    */
    #也可以考虑小顶堆来求最小的两个数据
    #include<stdio.h> void ArrSortInsert(int arr[], int n) { int temp; for (int i = 1; i <= n - 1; i++) { temp = arr[i]; int j = i - 1; while (j >= 0 && arr[j] > temp) { arr[j + 1] = arr[j]; j--; } arr[j+1] = temp; } } int CostMin(int arr[], int n) { int sum = 0, add; while (n > 1) { ArrSortInsert(arr, n); add = arr[0] + arr[1]; sum += add; arr[0] = add; for (int i = 1; i < n - 1; i++) arr[i] = arr[i + 1]; n--; } return sum; } int main() { int arr[] = { 8,5,6,7,3,2,1 }; int n = 7; printf("%d ", CostMin(arr, n)); getchar(); }
  • 相关阅读:
    反爬的几种手段总结
    算法基础篇一
    python总结九
    python总结八
    python总结七
    python总结六
    初识Machine学习
    python总结五
    python总结四
    python总结三
  • 原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/8610934.html
Copyright © 2011-2022 走看看