摘要: 工作分配问题: 问题描述:已知n的值与每个工作分配给其中一人的费用,n件工作分配给n个人,一二维数组记录工作i分配给第j个人所需的费用为c[i][j] 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小(需要注意的是每个人只能被分配到一项工作) 算法描述: 解 阅读全文
posted @ 2018-12-17 20:14 杨嘉丽 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 对回溯法的理解:回溯法从根节点开始,以深度优先的方式进行搜索。当到一个结点时要判断该结点是否包含问题的解,不包含则跳过以该结点为根的子树的搜索,逐层向其祖先结点进行回溯;否则,进入该子树,继续按深度优先策略进行搜索。用回溯法求问题的解时,要回溯至根,且根结点的所有子树均被搜索遍才会结束。回溯法适用于 阅读全文
posted @ 2018-12-17 18:07 杨嘉丽 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 对贪心算法的理解:贪心算法考虑的是当下最优,它并不从整体最优进行考虑,它所做的选择只是某种意义上的局部最优选折 汽车加油问题:当汽车剩余的油量还足够到达下一站时就不加油,这样每次加油都是必需、不可少的,以达到最少加油次数 问题:在做作业的第二道编程题时,思路是正确了的,但是因为一些细节问题在PTA一 阅读全文
posted @ 2018-11-27 19:50 杨嘉丽 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题目:删数问题 问题描述:输入一个正整数a和一个正整数k(k≤n ),在n位正整数a中去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新 的正整数。 算法描述:从前往后进行比较,删掉升序的最后那个数,若一直保持升序,则删掉最后一位数,重复k次,删掉k个数 时间复杂度:该算法主要进行了k次的fo 阅读全文
posted @ 2018-11-27 19:36 杨嘉丽 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目: 问题描述: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。也就是是说找出一段连续的子序列,该序列的和是最大的,输出该最大值。 算法描述: 用一个一维数组记 阅读全文
posted @ 2018-11-11 16:27 杨嘉丽 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1 对动态规划的基本思想是将待求的问题分解成若干个子问题,通过子问题的解得到原问题的解。然后为了避免大量的重复计算,可用一个表记录已解决问题的答案。动态规划将原来具有指数级时间复杂度算法改进成了具有多项式时间复杂度的算法,减低其时间复杂度。但它在实现的过程中,不得不存储产生过程中的各种状态,会增加空 阅读全文
posted @ 2018-11-02 20:45 杨嘉丽 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 问题描述:在排好序的数组,依照二分搜索算法的思想,寻找x。当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j;当搜索元素在数组中时,i和j相同,均为x在数组中的位置。输出小于x的最大元素的最大下标i和大于x的最小元素的最小下标j。当搜索元素在数组中时,i和j相同。 提示:若x小于全 阅读全文
posted @ 2018-10-20 11:04 杨嘉丽 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 二分搜索算法是一种效率较高的查找方法,可在最坏情况下用o(logn)完成搜索任务,但在使用时要注意确保元素的有序排序。 结队编程可以了解到自身的不足,相互促进。而且,在编程时很容易粗心而出现了错误,和她人合作能够更好地发现这些由于粗心而犯的错误。 阅读全文
posted @ 2018-10-16 14:26 杨嘉丽 阅读(137) 评论(0) 推荐(0) 编辑