码迷,mamicode.com
首页 > 编程语言 > 详细

算法第四章上机实验报告

时间:2018-12-02 12:30:04      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:描述   决定   int   算法   还需   一个   长度   空间复杂度   收获   

  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.心得体会(对本次实践收获及疑惑进行总结)

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

算法第四章上机实验报告

标签:描述   决定   int   算法   还需   一个   长度   空间复杂度   收获   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!