1. map : C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N)2.hash_map : 使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O(1), 最坏的时间复杂度:O(n)总体来说:hash_map 比 map 查找速度快,而且查找速度.....
分类:
其他好文 时间:
2014-06-28 23:22:16
阅读次数:
293
快速排序的时间复杂度为:O(n*log2n),相比较其他O(n2)的排序算法,还是比较有优势的。原文参考在此处,因为本人对原文的一小段代码有点不理解,所以进行了小的修改。1.基本思想:在数组的第一个或最后一个元素里选择一个,作为基准元素,也称中轴。通过排序,让中轴把数组分为俩部分,一部分比中轴小,一...
分类:
Web程序 时间:
2014-06-28 23:21:31
阅读次数:
359
运算排序 第一:计数排序 1:原理 对于每个输入数,确定小于该数的个数。这样可以直接把数放在输出数组的位置。 2:性能 最差时间复杂度 最优时间复杂度 平均时间复杂度 最差空间复杂度 注:稳定算法 3:应用 适合0~100的范围的数,当然可以和基排序结合而扩展数的范围。 4:实现 void Coun...
分类:
其他好文 时间:
2014-06-28 22:19:21
阅读次数:
208
这个问题的意思就是给定两个字符串s1和s2,判断s2是否包含在s1循环移位得到的字符串中。 这个题的最简单的一种思路就是对s1进行循环穷举,对于得到的每种情况,都进行判断s2是否包含在其中。 不过如果s1的字符串很长,那么穷举的时间复杂度是相当高的。因此可以换一种思路。 新的解决办法相当的...
分类:
移动开发 时间:
2014-06-28 20:50:03
阅读次数:
245
几种基础排序的学习冒(冒泡)>选(选择)>插(插入)>希(希尔)>快(快速)>归(归并)>堆时间复杂度冒-O(n^2)选-O(n^2)插-O(n^2)希-O(n*logn)快-O(n*logn)归-O(n*logn)堆-O(n*logn)(1)冒泡排序:package com.jp.algorith...
分类:
其他好文 时间:
2014-06-28 17:13:40
阅读次数:
156
1 算法原理依次确认第一个位置0~倒数第二个位置size-2的值。在确认位置i时,其前面的位置都已经确认,所以位置i处应该放置剩余的元素中的最小值。选择排序时间复杂度为O(n^2),速度比较慢。当数组长度为10万时,就耗时20s了。选择排序是不稳定排序,相等的元素,排序之后,相对位置可能发生变化。2...
分类:
其他好文 时间:
2014-06-20 23:49:41
阅读次数:
318
接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0;for(i=1;i=1;i--) siftd...
分类:
其他好文 时间:
2014-06-20 20:41:11
阅读次数:
205
算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数...
分类:
其他好文 时间:
2014-06-20 16:38:29
阅读次数:
134
Write a function to find the longest common prefix string amongst an array of strings.题解: 寻找一组字符串的最长公共前缀。最简单的方法,用一个字符串记录当前最长的公共前缀,然后依次比较。时间复杂度: O(N). ...
分类:
其他好文 时间:
2014-06-18 00:03:08
阅读次数:
274
归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort),但是归并排序是稳定排序, 而.....
分类:
其他好文 时间:
2014-06-17 23:47:38
阅读次数:
299