![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 83
iteye_20994
这个作者很懒,什么都没留下…
展开
-
【转】KMP算法小结
转自: http://wenku.baidu.com/link?url=i9CzZhVzmq9hXKF53jgxFMssvIKLyK45ix7PmwYP7HS2jLNbjNA_kALg8hK1sa7nmpKW706PSaE98pJB_HeLKqPeMQAwJIwfSM3dry9ecEm 主要看了这里,感觉讲的十分的不错,总结一下。首先声明要搜索的串为S,设长度为n,要匹配的串为M,...原创 2015-05-31 21:52:11 · 115 阅读 · 0 评论 -
【转】漫谈经典排序算法:五、线性时间排序(计数、基数、桶排序)比较
转自: http://blog.csdn.net/touch_2011/article/details/6787127 1、计数排序 1.1 引出 前面四篇博客中,所有的排序算法都存在比较,都可以称为”比较排序“。比较排序的下界为o(nlogn)。那么有没有时间复杂度为o(n)的线性时间排序算法呢?计数排序便是很基础的一种线性时间排序,...原创 2015-05-01 18:01:31 · 90 阅读 · 0 评论 -
【转】基数排序
转自:http://blog.csdn.net/weiwenhp/article/details/8617417 我们知道假如一个正整数A大于数B,要么就是A的位数更多点,要是相同位数则从高往低数起,必有某一位大于B.基数排序就是把一待排序的元素每一位(个,十,百...)拆分出来排序.先从个位,然后再十位.那么首先肯定要确定下待排序中的元素最大数有多少位.然后再借助一个临时数组和一...原创 2015-05-01 16:03:30 · 67 阅读 · 0 评论 -
【转】桶排序(Bucket Sort)
转自: http://blog.csdn.net/weiwenhp/article/details/8618500 桶排序的思想和基数排序有点类似,都要借助临时空间.基数排序是先映射到大小为10的计数数组中,然后再映射到大小等于待排序数组长度的临时数组中.而桶排序就是直接整个足够大的临时数组,把待排序的元素全部映射过来.其索引为待排序元素数值.所以为了确定临时数组的大小得先算出数组...原创 2015-05-01 15:51:29 · 86 阅读 · 0 评论 -
【转】计数排序
转自: http://blog.csdn.net/pi9nc/article/details/12220851 1)算法简介 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。它只能对整数进行排序。 2)算法描述和分析 ...原创 2015-04-30 15:22:59 · 141 阅读 · 0 评论 -
【转】冒泡排序
public static void BubbleSort(int[] array){ for (int i = 1; i < array.Length; i++) { for (int j = array.Length-1; j >= i; j--) { if (array[j]<a...原创 2015-03-30 21:42:56 · 81 阅读 · 0 评论 -
堆排序
原理如下:首先要根据给出的无序的数组构造一个大根堆,步骤如下:1, 找出第一个非叶子结点的编号,记为根结点root。2, 找出这个编号的左右孩子结点的编号a, b。3, 比较这3个结点,找出值最大的那个结点。4, 如果这个最大的值不是root,那么就赋值给root所在的结点,并且更新root指针为当前的结点编号,同时还要更新左右孩子的编号。5, 如果这个最大的值是roo...原创 2015-03-18 15:00:15 · 64 阅读 · 0 评论 -
白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇
转自: http://blog.csdn.net/morewindows/article/details/7961256 在我的博客对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法进行了详细的讲解,并做成了电子书以供大家下载。下载地址为:http://download.csdn.net/detail/morewindows/444...原创 2015-01-10 17:55:45 · 77 阅读 · 0 评论 -
白话经典算法系列之五 归并排序的实现
转自:http://blog.csdn.net/morewindows/article/details/6678165 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比...原创 2015-01-09 17:33:42 · 65 阅读 · 0 评论 -
【转】白话经典算法系列之三 希尔排序的实现
转自:http://blog.csdn.net/morewindows/article/details/6668714 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素...原创 2015-01-09 11:19:07 · 68 阅读 · 0 评论 -
白话经典算法系列之二 直接插入排序
插入排序的思想如下:1. 从第一个元素开始,认为他是有序的。2. 取出下一个元素, 在已经排序的元素序列中从后往前扫描。3. 如果发现已排序的中的某个元素大于新元素,那么就将该有序元素移到相爱一个位置。4. 重复步骤3直到找到一个已排序的元素小于等于新元素。5. 将新元素插入该位置。6. 重复步骤2-5. 如下是代码:static void Main(str...原创 2015-01-08 19:52:02 · 64 阅读 · 0 评论 -
【转】白话经典算法系列之六 快速排序 快速搞定
转自:http://blog.csdn.net/morewindows/article/details/6684558 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。...原创 2015-01-08 17:42:07 · 88 阅读 · 0 评论 -
KMP算法
转自: http://blog.csdn.net/WINCOL/article/details/4795369 KMP 的思想是这样的:利用不匹配字符的前面那一段字符的最长前后缀来尽可能地跳过最大的距离,换言之,问题由模式串决定,不是由目标决定!比如模式串ababac 这个时候我们发现在c 处不匹配,然后我们看c 前面那串字符串的最大相等前后缀,然后再来移动下面的两个都是...原创 2015-05-25 10:59:26 · 85 阅读 · 0 评论