算法
lzflydream
IT菜鸟相互学习共同进步
展开
-
各种查找、排序的时间复杂度
(1)冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。(2)选择排序 选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的。…… 例子说明好多了。序列5 8 5 2 9, 我们知道第一遍选择第1个元素5原创 2013-04-15 17:34:16 · 2343 阅读 · 0 评论 -
KMP算法详解及各种应用
KMP算法详解:KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0.转载 2013-04-29 22:09:42 · 1184 阅读 · 0 评论 -
Trie树|字典树的简介及实现
Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.其基本性质可以归纳为:1. 根节点不包含字符,除根节点外每一个节原创 2013-04-30 06:27:00 · 1534 阅读 · 0 评论 -
编程之美
1.1 cpu使用问题#include #include #include #include using namespace std;//第一种方式void main(){ INT64 start=0; int busy=10; int idle=busy; cout<<"CPU使用率问题"; while(true) { start=GetTickCount原创 2013-05-03 12:42:30 · 1760 阅读 · 0 评论 -
算法的一些代码
1、插入排序简单插入#includevoid insort(int a[],int n){ int i,j; for(i=2;i<=n;i++) { j=i-1; a[0]=a[i]; while(a[0]<a[j]) { a[j+1]=a[j]; j原创 2013-04-03 12:56:43 · 2577 阅读 · 2 评论