算法
文章平均质量分 78
叶声
这个作者很懒,什么都没留下…
展开
-
常见算法之排序一【冒泡排序】
冒泡排序是我们编程刚入门基本都会接触的一个排序算法,以来它比较简洁,也比较形象。它的思想就是,让每一个相邻的元素进行比较,假如他们不是按照升序或降序,则交换他们位置,重复这个操作,最大或最小的元素就像泡泡一样,升到了最上面,对剩下的元素重复这个操作,所有的元素就可以排好序了。它的运作方式:1.从头向后比较,假如相邻的元素之间的大小不是按升序或降序则将他们进行比较,若不是指定规则,则交换原创 2015-04-10 12:58:44 · 619 阅读 · 0 评论 -
常见算法之排序算法二【插入排序】
什么是插入排序!简单的介绍一下它的思想(假设为升序):在已经排好序的数组内,插入新的元素,从后往前找,当找到某个比它小的数,则停止,并将它插入这个与上一个数之间。先给大家看个图:具体算法描述如下:1.从第一个元素开始,因为只有一个元素,所以它有序。2.拿它后面的一个元素和它进行比较。3.它后面的元素比它大,把他往后移,并把它后面的元素赋给它原来的位置。4.重复3的动作,原创 2015-04-10 21:00:02 · 646 阅读 · 0 评论 -
常用算法之排序算法三【快速排序】
快速排序是东尼·霍尔在1962提出的划分交换排序,并采用一种分治的策略。在这,我们先总结一下:快速排序 = 划分交换排序 + 分治。然后我们在一一介绍他。划分交换排序原创 2015-04-13 17:40:42 · 554 阅读 · 0 评论 -
常见算法之全排列 全组合
全排列算法是一种比较常考的算法,他的做法也比较多样。首先我们来看看最符合我们直观思考的,思路是这样的:假如没有重复元素时,传入一个数组A,并插入到另外一个数组B中,假如B中已经包含这个元素,则跳过,否则插入数组B。我们来看看具体代码:public static void permutation1(final String str, String buffer){ if (s原创 2015-04-09 16:06:12 · 1082 阅读 · 0 评论 -
常用算法之Trie【字典树,前缀树】
Trie中文名又叫做字典树,前缀树等,因为其结构独有的特点,经常被用来统计,排序,和保存大量的字符串,经常见于搜索提示,输入法文字关联等,当输入一个值,可以自动搜索出可能的选择。当没有完全匹配的结果时,可以返回前缀最为相似的可能。其实腾讯的面试题有一个:如何匹配出拼写单词的正确拼写。其实用匹配树非常合适。基本性质:1.根节点不含有字符,其余各节点有且只有一个字符。2.根节点到某一节原创 2015-05-16 00:40:11 · 2382 阅读 · 0 评论 -
常用算法之排序算法四【归并排序】
归并排序是将排好序的序列逐步合成一个大序列的算法,从字面上来分析,主要分为归并和排序。算法描述:1.申请一块空间,大小为两个排好序序列长度之和,用来存放归并后的序列。2.设两个指针,分别指向两个已经排好序的序列的起始地址。3.比较两个指针指向位置的值大小,根据升序降序,选择较小值或者较大值存储在合并空间内,并将相应指针后移。4.重复3操作,直至指针移至序列尾部。5.将另一个原创 2015-05-15 00:13:54 · 896 阅读 · 0 评论