
算法
技术从未如此性感
这个作者很懒,什么都没留下…
展开
-
Java实现的对无序数组进行的二分查找法
public class TwoDepart { public static int quickSortOneTime(int[] a, int i, int j)//一趟快速排序 { int high,low,key; high = j; low = i; key = a[l原创 2016-09-13 18:16:47 · 2602 阅读 · 0 评论 -
最长非降子序列
#include using namespace std;int lis(int A[], int n){ int *d = new int[n]; int len = 1; for(int i=0; in; ++i){ d[i] = 1; for(int j=0; ji; ++j) if(A[j]A[i] &&原创 2016-08-29 22:46:53 · 476 阅读 · 0 评论 -
最短作业优先算法SJF,求平均等待时间
#include #include using namespace std;//最短作业优先算法SJF,求平均等待时间。float waitingTimeSJF(int *requestTimes, int *durations, int n){ // WRITE YOUR CODE HERE int cpu_time=0; float wait_time=0原创 2016-08-25 11:23:26 · 7833 阅读 · 0 评论 -
数组中最长递增子序列
求数组中最长递增子序列写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中的最长递增子序列的长度。例如:在序列1,-1,2,-3,4,-5,6,-7中,其最长的递增子序列为1,2,4,6。 分析与解法 根据题目的要求,求一维数组中的最长递增子序列,也就是找一个标号的序列b[0],b[1],…,b[m](0 解法一原创 2016-08-24 22:13:36 · 303 阅读 · 0 评论 -
算法策略选择
一、不同算法策略特点小结1、贪心策略 贪心策略一方面是求解过程比较简单的算法,另一方面它又是对能适用问题的条件要求最严格(即适用范围很小)的算法。 贪心策略解决问题是按一定顺序,在只考虑当前局部信息的情况下,就做出一定的决策,最终得出问题的解。 即:通过局部最优决策能得到全局最优决策2、递推策略 递推也是由当前问题的逐步解决从而原创 2016-08-04 21:19:06 · 1444 阅读 · 0 评论 -
分支限界法
一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分支”就是采用广度优原创 2016-08-04 21:17:45 · 338 阅读 · 0 评论 -
贪心算法
一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态原创 2016-08-04 21:16:57 · 262 阅读 · 0 评论 -
动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能原创 2016-08-04 21:14:56 · 284 阅读 · 0 评论 -
分治算法
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时原创 2016-08-04 21:14:13 · 299 阅读 · 0 评论 -
蛇形矩阵
题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211接口说明原型void GetResult(int Num, char * pResult);输入参数:原创 2016-07-20 16:49:07 · 640 阅读 · 0 评论 -
中缀表达式转换成后缀表达式并求值
算法:中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈6.最终将栈中的元素依次出栈,输出。例如原创 2016-07-15 16:16:13 · 419 阅读 · 0 评论