冒泡排序算法
一、基本思想
依次比较相邻的两个数,将小数放在前面,大数放在后面。
第1趟:
首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。
第2趟:
仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,
http://cyqdata.cn/cnblogs/article-detail-38183
遗传算法介绍(内含实例)
现代生物遗传学中描述的生物进化理论:
遗传物质的主要载体是染色体(chromsome),染色体主要由DNA和蛋白质组成。其中DNA为最主要的遗传物质。
基因(gene)是有遗传效应的片断,它存储着遗传信息,可以准确地复制,也能发生突变,并可通过控制蛋白质的合成而控制生物的状态.生物自身通过对基因的复制(reproduction)和交叉(crossover,即基因分离,基因组合和基因连锁互换
http://cyqdata.cn/cnblogs/article-detail-38022
步步为营 .NET 代码重构学习笔记 四、分解函数和替换算法(Replace Method And Substitute Algorithm)
Replace Method with Method Object 概述 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field),然后你可以在同一个对象中将这个大型函数分解为数个小型函数. 动机(Motivation) 小型函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大在提高代码的可读性. 示例 public int Gamma(
http://cyqdata.cn/cnblogs/article-detail-37994
常见算法笔试或面试题
Problem 1 : Is it a loop ? (判断链表是否有环?)
Assume that wehave a head pointer to a link-list. Also assumethat we know the list is single-linked. Can you come up an algorithm to checkwhether this link lis
http://cyqdata.cn/cnblogs/article-detail-37882
算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
算法杂货铺系列
算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)
算法杂货铺——分类算法之决策树(Decision tree)
算法杂货铺——k均值聚类(K-means)
http://cyqdata.cn/cnblogs/article-detail-37777
算法系列总结:回溯算法(解火力网问题)
理论辅助:
回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:
1、定义一个解空间,它包含问题的解。
2、利用适于搜索的方法组织解空间。
3、利用深度优先法搜索解空间。
4、利用限界函数避免移动到不可能产生解的子空间。
问题的解空间通常是在搜索问题的解的过程中动态产生的,这是
http://cyqdata.cn/cnblogs/article-detail-37730
实例讲解遗传算法——基于遗传算法的自动组卷系统【实践篇】
上一篇实例讲解遗传算法——基于遗传算法的自动组卷系统【理论篇】讲了遗传算法的原理及在自己动组卷系统中的应用,本篇将给出上一篇中所述理论的实践。
先上两张运行后的效果图吧:
基于遗传算法的自动组卷系统运行效果图(1)
基于遗传算法的自动组卷系统运行效果图(2)
一、准备工作
1、问题实体
问题实体包含编号
http://cyqdata.cn/cnblogs/article-detail-37723
《算法导论》学习总结 — 17.第15章 动态规划(2) 案例之装配线调度
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
原来打算把算法导论在7月份前搞定,现在已经过去一个多月了,才只看到第15章,后面也只零散看了一些,不知道假期前能否看完。。。够呛啊,马上要期末考试了,上学期GPA不到2,被学位警告了,虽说以后不学这个专业了,但起码成绩单上也不能
http://cyqdata.cn/cnblogs/article-detail-37692
《算法导论》学习总结 — 16.第15章 动态规划(1) 基本入门
第十四章我想放在后面再看,先搁下。希望大家总结的一些文章也能向我推荐下,大家互相学习。
首先,还是建议看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
其次,阿门,感谢老天送给了我们这么一本圣经,看了这一章,再次感受到了《算法导论》分析问题的精辟,强悍的魅力。Orz, Orz,各种Orz。
这一章讲的是动态规
http://cyqdata.cn/cnblogs/article-detail-37679
实例讲解遗传算法——基于遗传算法的自动组卷系统【理论篇】
一、遗传算法介绍
1.1 遗传算法概要
遗传算法(Genetic Algorithm,简称GA)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法,由美国的J.Holland教授1975年首先提出。遗传算法是一种模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,通过模拟自然进化过程搜索最优解,它常用来解决多约束条件下的最优问题。
&
http://cyqdata.cn/cnblogs/article-detail-37675
随机排列生成算法的一些随想
这篇文章主要是一个闲文。如果您正在寻求一个理想的随机排列生成算法,直接阅读方法3。另外请注意,这里所讨论的算法并不是新的。什么是随机排列?一个随机排列是一组位于随机位置的对象。给定一个对象,1, 2, 3 ... n,随机排列看起来就是,p1, p2, p3 ... pn其中px是从原来的对象集合中选取的随机值。随机排列对于扑克牌洗牌,随机产生益智游戏,产生随机序列,或者生成一个随机子集合集(从
http://cyqdata.cn/cnblogs/article-detail-37534
HubbleDotNet 分布式检索算法介绍 (一)
作者:eaglet
转载请注明出处
全文索引的分布式检索粗想想似乎很简单,感觉就是把多个接入点搜索出来的数据做个合并排序就可以,但如果想要做好,满足商业应用要求,这里面涉及到很多算法优化的问题,比如多路排序的优化,动态路由,翻页的优化,通讯的优化,分发复制,冗余和故障转移等等。从今天开始,我将逐步讲解HubbleDotNet 在分布式检索方面的众多算法考虑。
由于涉及的算法很多,无法在一篇全部阐述
http://cyqdata.cn/cnblogs/article-detail-37496
模拟退火算法应用于最优排列问题和最优组合问题 之 排列篇
一般学习模拟退火算法的时候,都是用全排列问题作为例子讲解,所谓全排列问题,就是说解的长度(或者步骤)是确定的,只不过排列顺序不同罢了,其中任何一种排列顺序都是问题的一个解,我们通过不断尝试不同的排列顺序,找到其中最优的一个。 象TSP旅行商问题就是典型的全排列问题,所有的城市都是两两互联的,每个城市都要去一次(且只能去一次),先去那个后去那个,顺序不同只不过花费的代价不一样,但都是问题的
http://cyqdata.cn/cnblogs/article-detail-37492
数据结构与算法(6)——哈希表
在很多情况下,我们需要实现一个符号表,里面保存我们用到的所有符号。每个符号有一个关键码key(不同符号的关键码也不同),其余部分可能非常庞大。换句话说,符号表应该提供以下操作:Search(T, k):查找关键码k是否在表中Insert(T, x):把x添加到表中Delete(T, x):从表中删除元素x有时也把符号表称为"字典",它最经典的实现方法是哈希表。
哈希表的不同设计方
http://cyqdata.cn/cnblogs/article-detail-37483
《算法导论》学习总结 — 15. 第13章 红黑树(4)
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
这一章把前面三篇的代码总结起来,然后推荐一些网上红黑树的优秀讲解资源。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
http://cyqdata.cn/cnblogs/article-detail-37267
《算法导论》学习总结 — 14. 第13章 红黑树(3)
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
这一篇是关于红黑树的结点删除。
依然和上一篇的插入一样,先用到了BST的删除结点函数,然后做相应的调整。
不过,这里的调整思路颇为新颖。
还是来看看略微改变后的删除结点函数:
1
2
3
4
5
6
7
8
9
10
1
http://cyqdata.cn/cnblogs/article-detail-37232
《算法导论》学习总结 — 13. 第13章 红黑树(2)
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
插入结点用到了上一次BST的插入函数(做了一点添加),并且在此基础上增加了保持红黑性质的调整函数。
还是先看看插入函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
http://cyqdata.cn/cnblogs/article-detail-37090
《算法导论》学习总结 — 12. 第13章 红黑树(1)
建议先看看前言:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html
本章内容颇多,所以我分四篇来写,这一篇是关于一些基本的概念和选择,中间两篇分别是插入和删除,最后一篇是总结。
上一章总结过BST(http://www.wutianqi.com/?p=2430),BST在高度较小时,可以获得很好的性能(因为
http://cyqdata.cn/cnblogs/article-detail-37088
算法与数据结构(2)——图的表示法与常用的转化算法
《图的表示方法》
(i)邻接矩阵表示法,如图:
也就是说,如果两节点之间有一条弧,则邻接矩阵中对应的元素为1;否则为0。可以看出,这种表示法非常简单、直接。但是,在邻接矩阵的所有 个元素中,只有 个为非零元。如果网络比较稀疏,这种表示法浪费大量的存储空间,从而增加了在网络中查找弧的时间。
同样,对于网络中的权,也可以用类似邻接矩阵的 矩阵表示。只是此时一条弧所对应的元素不再是
http://cyqdata.cn/cnblogs/article-detail-37050
漫谈算法(三)NP问题
Keywords: NP Problme; NP-hard Problem; NP-complete Problem; P Problem
[为什么写这类文章] 漫谈算法(零)序
[这系列文章里会用到的一下符号和公式] 漫谈算法(番外篇) 符号标记以及基本数学公式
首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题。
http://cyqdata.cn/cnblogs/article-detail-36908