zoukankan      html  css  js  c++  java
  • 算法第四章上机实践报告

    算法第四章上机实践报告

    一、程序存储问题

    1、实践题目及问题描述

    2、算法描述

      这道题要求在一定的磁带长度中存取最多的数目,由于每个程序长度之间并没有联系,所以先直接对程序的长度进行排序,然后从小到大进行将程序长度相加并与给定的磁带长度进行比较得到结果。

      

      实践代码

      

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int num[10005];
    
    int main() {
    	int n = 0 , k = 0;
    	cin >> n >> k;
    
    	for (int i = 1 ; i <= n ; i ++ ) {
    		cin >> num[i];
    	}
    	
    	sort(num + 1 , num + n + 1 );
    	
    	int sum = 0 , j = 0 ;
    	
    	for (int i = 1 ; i <= n ; i ++ ) {
    		sum += num[i];
    		if ( sum > k ) {
    			j = i - 1 ;
    			break;
    		}
    		j = i;
    	}
    	cout << j;
    
    	return 0;
    }
    

      

    3、心得体会算法时间及空间复杂度分析

    算法时间复杂度为O(nlogn),因为调用了sort函数进行排序。

    4、心得体会

      虽然说贪心算法是一种特殊的动态规划,贪心算法可以通过一个选择策略,直接得到一个局部最优解,而不需要通过递归遍历。其中的关键是如何证明贪心策略是正确的,并找到其中的最优解。

     

  • 相关阅读:
    课程安排及脉络
    面向对象 魔法方法 单例(五)
    练习项目:选课系统
    面向对象 多态 类方法 反射 (四)
    面向对象(三) 组合 封装
    面向对象编程(二)
    面向对象编程(一)
    python入门总复习
    模块(四)
    模块(三)
  • 原文地址:https://www.cnblogs.com/yingni/p/11884423.html
Copyright © 2011-2022 走看看