首页 > 编程语言 > 详细

算法第四章上机实验报告

时间:2018-12-02 11:29:36      阅读:205      评论:0      收藏:0      [点我收藏+]
  1. 实践题目

    7-1 最优合并问题 

  2. 问题描述

    给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。

   3.算法描述

    要获得最小比较次数,则每次都取最小序列合并;要获得最多比较次数,则每次取最大序列合并。

 while(min_mark<k-1)
    {
        min_sum= min_sum+a[min_mark]+a[min_mark+1]-1;
        a[min_mark]=a[min_mark]+a[min_mark+1];
        a[min_mark+1]=0;
        min_mark++;
        sort(a,a+k);
    }
    for(int hh=1;hh<=k-1;hh++)
    {
        max_sum=max_sum+b[k-1]+b[k-2]-1;
        b[k-1]=b[k-1]+b[k-2];
        b[k-2]=0;
        sort(b,b+k);
    }

   4.算法时间及空间复杂度分析(要有分析过程)

    时间复杂度:排序O(nlogn)合并(n-1)(2*O(1)+O(n))=O(n^2)

    空间复杂度:数组存储O( n) 

        5.心得体会(对本次实践收获及疑惑进行总结)

    在实践过程中,贪心算法的使用过程中,最重要要决定贪心选择的方法,才能得到整体的最优解

算法第四章上机实验报告

原文:https://www.cnblogs.com/yanjingyin/p/10051503.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!