码迷,mamicode.com
首页 >  
搜索关键字:kmp 算法    ( 85045个结果
leetcode第一刷_Search in Rotated Sorted Array
旋转数组的查找问题。从头开始扫一遍,O(N)的复杂度,一般也能过,甚至先排序以下,再二分都能过。不过这道题的目的当然不在于此。 想一下旋转之后对我们的查找产生了什么影响。如果没旋转过,我们直接比较target与A[middle]的大小,然后总能非常确定的丢掉源数组的一半,即把搜索空间减半,但是旋转之后,只根据A[middle]是确定不了下一轮的走向的,因为即使A[middle]比target大,...
分类:其他好文   时间:2014-05-12 15:25:32    阅读次数:231
经典算法宝典——迭代思想(二)(1)
迭代法(Iteration)也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。...
分类:其他好文   时间:2014-05-12 14:56:47    阅读次数:297
leetcode第一刷_Search in Rotated Sorted Array II
接着上一篇,同样是旋转数组中查找问题。如果这个数组有重复元素怎么办呢?会有什么影响? 我举一个极端的例子,假设数组中的元素是这样的,1,1,2,1,1,1,1,我们要在这个数组中查找2,一开始的A[middle]=1,发现比target小,那我们就看看A[0]和A[N],发现都跟A[middle]相等,那么这个2到底在哪一半中?只有上帝知道,如果他老人家真的存在的话。这种时候我们怎么办呢?没有其...
分类:其他好文   时间:2014-05-12 14:45:35    阅读次数:278
排序函数sort用法简介
排序算法有很多,冒泡排序,选择排序,堆排序,快速排序,归并排序,基数排序……其中平均复杂度O(nlogn)的排序算法或者在某方面有特殊优势的算法在ACM中才有实际使用价值,所以上述提到的前2种大家以后就不要用了。其他排序算法大家会慢慢接触,本文主要介绍使用最多的排序函数 sort。大家可能会遇到qs...
分类:其他好文   时间:2014-05-12 09:24:26    阅读次数:323
第21章 策略模式(Strategy Pattern)
原文第21章 策略模式(Strategy Pattern)策略模式 导读:策略模式看完之后,大多数人都会感觉有点混了,包括我,感觉策略模式是一种OO思想的体现(纯属个人拙见)。 概述: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户.....
分类:其他好文   时间:2014-05-12 08:39:21    阅读次数:278
第4章 建造者模式(Builder Pattern)
原文第4章 建造者模式(Builder Pattern)定义将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。实用范围1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2 当构造过程必须允许被构造的对象有不同表示时。...
分类:其他好文   时间:2014-05-12 08:27:00    阅读次数:387
[收藏]我的算法学习之路
转自:http://zh.lucida.me/blog/on-learning-algorithms/关于严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的。原文...
分类:其他好文   时间:2014-05-12 07:26:28    阅读次数:488
最小的K个数
输入n个数,找出其中最小的k个数。例如输入4,5,1,6,2,7,3,8 这8个数,则最小的4个数是1,2,3,4.解法一:O(n)的算法,只有当我们可以修改输入数组时可用解法二:O(nlogk)的算法,特别适合处理海量数据
分类:其他好文   时间:2014-05-11 12:58:51    阅读次数:242
nyoj开心的小明
这个问题是01背包,而对于编程之美那道是完全背包问题,在编程之美中也有一个0,1背包问题。 而且是容量是小于等于,不是等于,对于是否等于,在初始化参数时候不一样,不小于全部初始化为0,恰好等于,初始化为无穷大,除了0.问什么呢?看算法入门竞赛那本, 背包问题其实不是很好理解,但是代码最终形式很简单,...
分类:其他好文   时间:2014-05-11 06:48:30    阅读次数:246
排序算法 之 快速排序
快速排序是基于分治思想的一种排序算法,就像该方法的名字一样,速度比较快,所以叫做快速排序;它的平均时间复杂度为O(N*logN),最坏时间复杂度为O(n2),由于快速排序在序列元素数量多的时候速度比较快,所以很多语言内置的排序方法也是用快速排序实现的。快速排序也有很多优化的版本,比如在排序时基数的选...
分类:其他好文   时间:2014-05-10 23:46:39    阅读次数:553
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!