算法
文章平均质量分 54
待飞的毛毛虫
这个作者很懒,什么都没留下…
展开
-
算法导论-插入排序
算法导论中的第一章是算法入门,开头的一个例子是关于插入排序的。插入排序的过程:将一个数组分成有序部分和无序部分(刚刚开始有序部分为第一个元素),然后将无序部分的第一个元素与有序部分的元素从前往后比较(也可以从后往前),符合要求时将这个元素插入数组中,当然了,有序部分的一些元素需要依次往后移一个,以便腾出位置插入。例如一个数组:3 ,6,9,10,2,7 (按升序)1. 一开始3是有原创 2014-02-26 11:16:59 · 597 阅读 · 0 评论 -
算法分析的数学基础
定义:1. 如果存在正常数c和n0,使得当N>=n0时T(N)2. 如果存在正常数c和n0,使得当N>=n0时T(N)>=cf(N),则记为T(N) = Ω(f(N))。3. T(N) = Θ(h(N))当且仅当T(N) = O(h(N))和T(N) = Ω(h(N))。4. 如果对所以的常数c存在n0使得当N>n0时T(N) 通常以相对增长率来进行比较。N^2的增原创 2014-03-02 14:28:18 · 1395 阅读 · 0 评论 -
辗转相除法求最大公约数
辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 / 105 = 2余42,所以105和42的最大公约数也是21。ps:最小公倍数= 二数中的大数/最大公约数)*小数原创 2014-03-08 14:35:13 · 840 阅读 · 0 评论 -
字典序算法
字典序算法我们都知道字典中的单词是如何排列的,即首先比较第一个,如果哪一个较小那么这个单词就排在前面,如果相等,那么比较第二个,依此类推。在c++的STL中也有一个类似的算法,即next_permutation,它按照字典一样的排序算法,计算出一个序列的下一个序列是什么,例如32456983的下一个就是32458369,下面来详细说明一下原理,步骤和解释。原理:我们要找下一个序列,就是原创 2014-07-16 22:34:40 · 1055 阅读 · 1 评论 -
leetcode解题报告 Reverse Words in a String
Reverse Words in a String这是leetcode一道题,要求如下:Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".Clarification:What原创 2014-07-20 18:31:39 · 457 阅读 · 0 评论 -
leetcode解题报告 Evaluate Reverse Polish Notation
Evaluate Reverse Polish NotationEcaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integer or another expression.Som原创 2014-07-23 14:02:25 · 480 阅读 · 0 评论 -
一步步带你深入理解数据结构系列--散列表
以下所说的有任何疑问或者有任何错误,欢迎评论,但不可能时刻都上着CSDN,所以可以用微博@或私信我。微博:halooooJeffrey概述散列方法以最基本的向量作为底层支撑结构,通过适当的散列函数在词条的关键码与向量单元的秩之间建立起映射关系。只要散列表、散列函数以及冲突排解策略设计得当,可在期望的常数时间内实现词典的所有接口操作。即运行时间与词典的规模基本无关。基本概念原创 2014-08-17 19:21:05 · 1125 阅读 · 0 评论