再议“生成全排列算法”
看了“白话算法(7) 生成全排列的几种思路(一)”和“白话算法(7) 生成全排列的几种思路(二) 康托展开”。在此,将以前本人推导的全排列算法介绍一下,和广大的网友交流一下。
以例子说明,用0、1、2、3,四个数组成全排列。
首先可以知道,这四个数组成的全排列一共有4!=24个。那么给这24个全排列编号,分别为0、1、2…R
http://www.cyqdata.cn/cnblogs/article-detail-36884
《算法导论》学习总结 — 10. 第10章(略) && 第11章 散列表
建议先看看前言:http://www.wutianqi.com/?p=2298
第10章没法说,数据结构还是看严奶奶的比较好,所以《算法导论》上的这一章我随便瞄了几眼就过去了,不过话说回来,数据结构非常重要!!!所以,大家最好把严蔚敏的《数据结构》认认真真的看N遍!!!
另外,推荐看看这个:
数据结构的源码实现:http://www.cpp leyuan.com/viewthread
http://www.cyqdata.cn/cnblogs/article-detail-36878
从1加到100的算法你会吗?那从第M加到第N呢?
今天在看视频教程的时候,听到“杨中科”老师说有很多大公司,在面试的时候常常问一些基础的东西,甚至常问你一些简单到“变态”的题,对于我们做Web开发来说,突然问你一些算法题,也许有好多人当时的脑子是空白的;杨老师说例如问到从1加到100的算法,有很多程序员都写不出来;今天在这里,我用一种数学公式来算出这道题~
首先要知道从1加到100的数式; n*(n
http://www.cyqdata.cn/cnblogs/article-detail-36796
《算法导论》学习总结 — 9.第九章 中位数和顺序统计学
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
这一章的内容很简单,基本都是一些概念。
第i个顺序统计量:在一个由n个元素组成的集合中,第i个顺序统计量(order statistic)是该集合中第i小的元素。
最小值是第1个顺序统计量(i=1)
最大值是第n个顺序统计量(i
http://www.cyqdata.cn/cnblogs/article-detail-36739
《算法导论》学习总结 — 8.第八章(2) 计数排序 && 基数排序 && 桶排序
建议先看看前言 : http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
这一节讲的是非线性排序。
一.计数排序(Counting Sort)
基本思想:对每一个输入元素x,确定出小于x的元素个数。
适用范围:适用于输入是由小范围的整数构成的序列。
稳定性:算法是稳定的。
具体实现:
/*
Auth
http://www.cyqdata.cn/cnblogs/article-detail-36639
《算法导论》学习总结 — 7.第八章(1) 决策树
建议先看看前言 : http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html 第八章将介绍几种非比较排序—计数排序,基数排序,桶排序,这三种排序都在线性时间下运行的。 这一节决策树其实是对前面的堆排序,快排等是最优的比较算法的证明, 首先说下《算法导论》上对决策树的定义:一棵决策树是一棵满二
http://www.cyqdata.cn/cnblogs/article-detail-36526
算法题——第1000000个数是多少?
原题在“两道TB面试题”文章中。今日在本文中,就个人的理解再阐述一遍。
题目1:有一个数列,它由3个数列复合而成,并升序排列。三个数列分别是2的n次,3的n次,5的n次,0≤n<∞。给出前几项:1,2,3,4,5,8,9,16,25,27………………即20(30, 50
http://www.cyqdata.cn/cnblogs/article-detail-36487
求两点之间所有路径的算法
作者:finallyly 出处:技术(如若转载请注明作者和出处)
最近在实现一个算法,算法之内有一个子算法是求有向图内两个定点(原点和目的点)之间的全部路径。在网上翻阅了大部分资料,发现给出的算法和代码要么只能解决DAG(有向无环图)的两定点之间所有路径问题,要么就是算法本身存在若干漏洞,连DAG图也无法解决。花费了一天的时间,自己写了个求简单有向图中(包括dag和非dag)两定点之间所有路径的算
http://www.cyqdata.cn/cnblogs/article-detail-36397
白话算法(7) 生成全排列的几种思路(一)
我在黄昏时坐在地球上 我这样说并不表明晚上 我就不在地球上 ——海子 《明天醒来我会在哪一只鞋子里》思路1:加大搜索空间,使用评估函数找到解 “如果在可能的地方找不到,就去不可能的地方找。”这是一句废话,也是一句挺有道理的话,甚至有时候,它还是一句有用的话。因为生活中有时真的会有神奇的事
http://www.cyqdata.cn/cnblogs/article-detail-36358
漫谈算法(四)分治算法 Divide and Conquer Algorithm
Keywords: Divide and Conquer Algorithm; Mathematical Induction; Recurrence Tree; Master Theorem .
[为什么写这类文章] 漫谈算法(零)序
[这系列文章里会用到的一下符号和公式] 漫谈算法(番外篇) 符号标记以及基本数学公式
http://www.cyqdata.cn/cnblogs/article-detail-36339
漫谈算法(二) 动态规划 Dynamic Programming
Keywords: Dynamic Programming; Recursive Methods
[为什么写这类文章] 漫谈算法(零)序
[这系列文章里会用到的一下符号和公式] 漫谈算法(番外篇) 符号标记以及基本数学公式
动态规划,Dynamic Programming。这里的programming没有翻译成编程,是因为,这里的progr
http://www.cyqdata.cn/cnblogs/article-detail-36287
《算法导论》学习总结 — 3.第四章 && 第五章
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
因为《算法导论》第一部分1~5章的理论性太强,研究过多容易纠结,所以索性合起来快点讲过去。
第四章:
这一章讲的是递归式(recurrence),递归式是一组等式或不等式,它所描述的函数是用在更小的输入下该函数的值来定义的。
本章讲了三种方法来解递归式,
http://www.cyqdata.cn/cnblogs/article-detail-36258
漫谈算法(一) 如何证明贪心算法是最优 using exchange argument
Keywords: Greedy Algorithm; Exchange Argument
[为什么写这类文章]
这里主要是介绍一种证明贪心算法是最优的一种方法:Exchange Argument (不知道应该怎么翻译到中文,交换参数?感觉听起来挺别扭的,不像是一个方法的名字~o(╯□╰)o)
Exchange Argument的主要的思想也就是 先假设 存在一个最优的算法和我们的贪心算法最接近,
http://www.cyqdata.cn/cnblogs/article-detail-36171
《算法导论》学习总结 — 2.第一章 && 第二章 && 第三章
上一篇:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
前三章基本没什么内容,所以合在一起总结。
第一章:
讲了算法(algorithm)的基本概念,以及算法的作用。(这些可以看书)
用个人的话来讲,你可以把算法当做一个解决问题的方法,就像数学里的各种公式一样,你也可以把他们认为是一种算法。算法无处不在
http://www.cyqdata.cn/cnblogs/article-detail-36170
《算法导论》学习总结 --- 1.前言
09年买的这本书,不过先开始一直没怎么用,直到去年6月份左右开始搞ACM,才偶尔翻翻这本书。
这本书给我这样的感觉:有时遇到一个算法,在网上找了很多相关资料,但是看完后还是有点迷茫,然后才想起《算法导论》,遇到翻开目录,发现有相关的章节,于是去认真阅读,顿时发现自己的很多问题都可以解决了。它就是这么一本书,也许你会把它当一本圣经来供养,但是当你认真阅读后,你会发现你受益颇多。
于是,
http://www.cyqdata.cn/cnblogs/article-detail-36139
KMP算法
KMP算法是字符串处理算法的一种经典算法。字符串中的一些算法在C++中需要编程者自己实现,在C#中的话String类的功能及其强大,编程者自己调用该类一些功能完成字符串处理。那么可能就导致错过这些字符串基本的经典算法。而在字符串处理这些算法中,KMP算法可谓是经典算法。
那么首先看下面一个一般求子串在主串中的位置的算法。
模式匹配
有两个字符串S1(长度为n)和S2(长度为m)(n>
http://www.cyqdata.cn/cnblogs/article-detail-36032
算法题——一道数字组合的题目的求解
题目:给定一个数字,和一个范围,产生所有在范围内的不重复的数字之和,和等于给定的数字。 举例:给数字12,范围3-6。可以产生以下5个组合: 1、3+3+3+3 2、3+3+6 3、3+4+5 4、4+4+4 5、6+6 要求给出最快实现,并且是非递归。
这是某人给我出的一道算法题。经过考虑,给出了解法。最快的谈不上(算法无止境、人外有
http://www.cyqdata.cn/cnblogs/article-detail-35894
语音编码算法AMR NB , AMR WB 和AMR WB+的区别
网上有些分析AMR NB 和AMR WB区别的资料,为节省篇幅,就不一一转过来了,可以参考如下
http://www.rosoo.net/a/201101/10759.html
还有科技论文在线的:AMR-NB 与AMR-WB 语音编码标准技术的对比研究
不过我感觉这些对比都是对比的表面现象,没有对比AMR NB和AMR WB的本质不同,AMR NB和AMR WB语音编解码都是使用的是多码率宽带代
http://www.cyqdata.cn/cnblogs/article-detail-35826
A算法的一些理解
这是一篇读书笔记,论文见http://files.cnblogs.com/crbtmac/Astar%E5%AF%BB%E8%B7%AF%E5%88%9D%E6%8E%A2.pdf
所谓众里寻她千百度讲的就是启发式搜索吧- -!
做ACM题目的时候,发现很少题目涉及到启发式搜索,也就是所谓的A算法。这学期开始学人工智能,于是对A算法也就有了更深入的了解。
A算法就是在普通的宽搜或者深搜
http://www.cyqdata.cn/cnblogs/article-detail-35605
编程基本算法(三)
编程基本算法(一)
编程基本算法(二)
编程基本算法(三)
选择排序
使用条件:可对比大小的集合。
算法思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
举例编程:int b[10]={77,1,65,13,81,93,10,5,23,17}
//简单选择排序void SimpleSelect(int b
http://www.cyqdata.cn/cnblogs/article-detail-35535