特点唯一一个头节点唯一一个尾节点除头节点外,均只有一个前驱节点除尾节点外,均只有一个后继节点顺序表插入平均移动步数 n/2删除平均移动步数
(n-2)/2查找时间代价 O(n)二分查找时间代价 O(log2n)适合整块存储有序数据,不适合频繁插入删除以及动态扩展。链接表查找时间代价 O(...
分类:
其他好文 时间:
2014-06-11 08:27:00
阅读次数:
156
1. 查找和排序查找:顺序查找、二分查找、二叉搜索树、哈希表顺序查找:T(n) = O(n)
std::find二分查找:T(n) = O(log n) std::binary_search std::lower_bound
std::upper_bound哈希表: T(n) = O...
分类:
其他好文 时间:
2014-06-11 07:45:31
阅读次数:
250
1. 普通的二分查找2. 查找最左边的值3. 查找最右边的值Worst case
performance: O(log n)Best case performance: O(1)Average case performance: O(log
n)Worst case space complexity...
分类:
其他好文 时间:
2014-06-07 11:19:48
阅读次数:
248
我做这道题,是先用二分查找找到该数字,而后再遍历其前后相同的数字,统计次数。这种做法的平均时间复杂度为O(logn),最坏情况下为O(n),剑指offer上给的思路是两次用二分查找分别找到该数字第一次和最后一次出现的位置,这样的时间复杂度平均和最坏都是O(logn),稍好些》
下面贴上我按照自己思路写的代码:...
分类:
其他好文 时间:
2014-06-07 01:19:45
阅读次数:
197
项目安排
题目描述:
小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个项目后,拿到报酬都是不同的。由于小明马上就要硕士毕业了,面临着买房、买车、给女友买各种包包的鸭梨,但是他的钱包却空空如也,他需要足够的money来充实钱包。万能的网友麻烦你来帮帮小明,如何在最短时间内安排自己手中的项目才能保证赚钱最多(注意:做项目的...
分类:
其他好文 时间:
2014-06-05 07:49:00
阅读次数:
206
//*************************************
// 函数名称:FineTab 二分查找算法 ->查温度表
// 函数功能:查找数据在表中对应的位置 表中数据从大到小
// 入口参数:表地址、表长度、要查找的数据
// 出口参数:无
// 返 回 值:数据在表中的位置
//***************************************/
int ...
分类:
其他好文 时间:
2014-06-05 03:00:34
阅读次数:
246
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
其他好文 时间:
2014-06-02 14:02:13
阅读次数:
303
本节主要讲解的是算法的复杂度。
算法性能
算法的性能分为三种:
最佳情况:计算时间最短的情况
最差情况:计算时间最长的情况
平均情况:随机输入的期望开销
以二分查找为例
最佳情况是1,因为第一次就有可能找到需要找的整数。
最差情况是logN
平均情况是logN
算法复杂度
...
分类:
其他好文 时间:
2014-06-01 15:57:46
阅读次数:
220
//二分查找$arr = array(0,1,2,3,4,5,6,7,8,9); function
bin_sch($array, $low, $high, $k){ if ($low <= $high){ $mid =
intval(($low+$high)/2); ...
分类:
Web程序 时间:
2014-05-25 19:05:46
阅读次数:
338
最长递增子序列
问题:
求一个一维数组中最长递增子序列的长度。
解法1:
很明显用动态规划的算法,选取下面的阶段(这种选法极为常见),可使阶段间的关系具有无后效性。
阶段:在所有以元素k结尾的子数组中,选出其中的最长递增子序列,k=1,2...n。
状态:以元素k结尾的最长递增子序列中只有一个最长的递增子序列。
决策:决定元素k结尾的最长递增子...
分类:
其他好文 时间:
2014-05-25 04:37:56
阅读次数:
193