算法
文章平均质量分 54
summer.lei
这个作者很懒,什么都没留下…
展开
-
递归和迭代
辩证看递归和迭代所谓递归,简而言之就是应用程序自身调用自身,以实现层次数据结构的查询和访问。递归的使用可以使代码更简洁清晰,可读性更好(对于初学者到不见得),但由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多,而且,如果递归深度太大,可能系统资源会不够用。往往有这样的观点:能不用递归就不用递归,递归都可以用迭代来代替。诚然,在理论上,递归和迭代在时间复杂度方面是等价转载 2016-05-13 09:43:54 · 436 阅读 · 0 评论 -
三种算法求解一个数组的子数组最大和
这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典。一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该子数组中各元素的和最大,这个子数组便被称作最大子数组。比如数组{2,4,-7,5,2,-1,2,-4,3}的最大子数组为{5,2,-1,2},最大子数组的和为5+2-1+2=8。下面按照时间复杂度逐步优化的顺序依次给出这三种算法。暴力求解法原创 2016-09-13 17:46:34 · 960 阅读 · 0 评论 -
算法导论2.3-7(未排序数组) 和 剑指offer面试题41(排序数组)
题目要求: 算法导论2.3-7:给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数组成的集合S和另个整数x时,判断S中是否存在有两个其和等于x的元素 剑指offer:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使它们的和恰好为S。 如果有多对数字的和为S,输出其中任意一对即可 算法导论的解题思路:都给数组先进行归并排序,事件爱你复杂度为O(nlgn),后续做法两题一致原创 2016-09-07 17:32:42 · 528 阅读 · 0 评论 -
冒泡排序 选择排序和插入排序
冒泡排序: 思路:将相邻的两个数比较,将较小的数调到前头;有n个数就要进行n-1趟比较,第一次比较中要进行n-1次两两比较,在第j趟比较中,要进行n-j次两两比较。 依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。原创 2016-09-07 20:24:07 · 388 阅读 · 0 评论 -
算法导论九大排序总结
转载来源:http://blog.csdn.net/xiazdong本文首先介绍了基于比较模型的排序算法,即最坏复杂度都在Ω(nlgn)的排序算法,接着介绍了一些线性时间排序算法,这些排序算法虽然都在线性时间,但是都是在对输入数组有一定的约束的前提下才行。这篇文章参看了《算法导论》第2、3、4、6、7、8章而总结。算法的由来:9世纪波斯数学家提出的:“al-Khow转载 2016-09-22 20:40:06 · 2822 阅读 · 0 评论 -
七大比较排序总结
排序分为比较排序和非比较排序,这里先介绍比较排序 插入排序:直接插入排序,希尔排序 交换排序:冒泡排序,快速排序 选择排序:直接选择排序, 堆排序 最后是归并排序。 基于比较的排序都是遵循“决策树模型”,而在决策树模型中,我们能证明给予比较的排序算法最坏情况下的运行时间为Ω(nlgn),证明的思路是因为将n个序列构成的决策树的叶子节点个数至少有n!,因此高度至少为nlgn。(算法导论)非比原创 2016-12-21 16:31:04 · 641 阅读 · 0 评论 -
树的先序中序后序层次遍历(非递归)
1 树的先序中序后序遍历,都是树的深度优先遍历的特例。一般我们所写的深度优先遍历用的都是树的先序 2 树的层次遍历,就是树的广度优先遍历//先序遍历非递归算法 1 也是深度优先遍历写法 void pre(BinaryTree * root) { if (root == NULL) { return;原创 2017-08-08 19:51:34 · 361 阅读 · 0 评论 -
深入:最大子序列和(多种算法)
问题描述:给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;例如:对于序列-2, 11, -4, 13, -5, –2。 所求的最大子序列和为20(从11到13,即从a1到a3)。用于测试下面代码的的主函数代码如下:(注意要更改调用的函数名)[cpp] view转载 2017-08-02 12:19:56 · 339 阅读 · 0 评论 -
数组中和为0的最长子序列 三种变形
数组中和为0的最长子序列 三种变形原创 2017-10-13 21:34:57 · 847 阅读 · 0 评论