![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高效算法设计
JanFangZ
坚持,坚持就好了!
展开
-
高效算法设计_算法分析初步(最大连续和)
算法分析初步渐进时间复杂度 基本操作的数量往往可以写成关于“输入模式二”的表达式,保留最大象并忽略系数后的表达式称为算法的渐进时间复杂度。最大连续和六种姿势拿下最大序列和 嗯。。。我们三种就够折腾了。题目:给出一个长度为n的序列A1,A2,…..,An,求最大连续和。输入:6-2 11 -4 13 -5 -2输出:201 O(n^3)使用三次循环,计算每一个序列和的大小,然后和bes原创 2017-08-10 19:22:19 · 212 阅读 · 0 评论 -
高效算法设计_再谈排序和检索(归并排序,逆序数对)
归并排序上一个分治法的扩展 划分:把序列分成元素个数尽量相等的两半。 递归求解:把两半的元素分别排序 合并:把两个有序表合并成一个输入:81 2 12 11 9 7 13 20输出:1 2 7 9 11 12 13 20#include <stdio.h>#define MAXSIZE 1024void merge_sort(int *A,int x,int y,int原创 2017-08-11 09:17:14 · 243 阅读 · 0 评论 -
高效算法设计(二分查找,范围统计)
二分查找二分查找一般写成非递归形式,输入数组,使用sort函数将数组排序。如果由多个相同的数,返回第一个数(lowerBound)。如果不存在,返回下标i,使i和i以后的往右移动。输入:81 9 6 3 4 7 9 0381 9 6 3 4 7 9 05输出:24#include <stdio.h>#include<algorithm>#define MAXSIZE 102原创 2017-08-12 20:48:58 · 501 阅读 · 0 评论 -
高效算法设计(二分查找,范围统计)
二分查找二分查找一般写成非递归形式,输入数组,使用sort函数将数组排序。如果由多个相同的数,返回第一个数(lowerBound)。如果不存在,返回下标i,使i和i以后的往右移动。输入:81 9 6 3 4 7 9 0381 9 6 3 4 7 9 05输出:24#include <stdio.h>#include<algorithm>#define MAXSIZE 102原创 2017-08-12 20:51:24 · 254 阅读 · 0 评论 -
高效算法设计_递归与分治(棋盘覆盖问题,循环日程表,巨人与鬼)
递归与分治棋盘覆盖问题题目:有一个2^k*2^k的方格棋盘,恰有一个方格是黑色的,其他为白色。你的任务是用包含3个方格的L型牌覆盖所有白色方格。黑色方格不能被覆盖,且任意一个白色方格不能同时被两个或更多牌覆盖。下面是L型牌的4种旋转方式。原创 2017-08-12 21:05:50 · 476 阅读 · 0 评论 -
高效算法设计_递归与分治(贷款,最大值最小化)
贷款题目:一次向银行借a元钱,分b月还清。如果需要每月还c元,月利率是多少(按复利率计算)?例如借2000元,分4个月每月还510,则月利率为0.797%。答案应不超过100%。输入:2000 4 510输出:0.797%思路:设月利率为x,则第一个月还钱后还需还a(1+x)-c,重复b个月后可以得到方程。利用f(x)和0的关系与x和方程解x0的大小关系等价。 (虽然现对分治还是搞不懂原创 2017-08-14 09:29:58 · 546 阅读 · 2 评论 -
高效算法设计_贪心法(最优装载问题,部分背包问题,乘船问题)
二分查找二分查找一般写成非递归形式,输入数组,使用sort函数将数组排序。如果由多个相同的数,返回第一个数(lowerBound)。如果不存在,返回下标i,使i和i以后的往右移动。输入:81 9 6 3 4 7 9 0381 9 6 3 4 7 9 05输出:24#include <stdio.h>#include<algorithm>#define MAXSIZE 102原创 2017-08-14 17:34:41 · 1692 阅读 · 0 评论