码迷,mamicode.com
首页 >  
搜索关键字:复杂度    ( 16171个结果
杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析
说明 本文给出杨辉三角的几种C语言实现,并简要分析典型方法的复杂度。 本文假定读者具备二项式定理、排列组合、求和等方面的数学知识。一 基本概念 杨辉三角,又称贾宪三角、帕斯卡三角,是二项式系数在三角形中的一种几何排列。此处引用维基百科上的一张动态图以直观说明(原文链接http://zh.wik...
分类:编程语言   时间:2014-06-29 12:07:25    阅读次数:328
快速排序
一直以来,对排序都不太感冒,能立马写出来的排序恐怕就只有冒泡排序了,但是我又深知排序算法还是挺重要的然后,就不得不研究一下,那首先拿快速排序来开刀吧我们先不管排序的复杂度什么的,直入主题题目:对数列 4 6 9 3 2 8 5 1 用快速排序首先抽出一个数字(可以是这个数列中的任何一个)抽取第一个吧...
分类:其他好文   时间:2014-06-29 07:51:26    阅读次数:245
Manacher算法--O(n)内求回文子串
昨天做了leetcode里的     Longest Palindromic Substring ,一开始用动态规划O(N^2),不管怎么改都超时了。。。于是在大神的帮助下,找到了传说中的Manacher算法,居然能在O(n)内求出来,瞬间给跪了。 本屌认为,这个算法主要是充分的利用了以前的匹配的结果,来起到了降低时间复杂度的作用,这点跟KMP算是有点类似。在预处理时有个小技巧就是将第0,1为设...
分类:其他好文   时间:2014-06-20 12:15:22    阅读次数:305
字符串元素重排高效算法集合
以下各题均有时间复杂度为O(n*n)或以空间换取时间使得时间空间复杂度为O(n)的算法,在此均不考虑。 问题一、字符串移动       字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变,要求时间和空间复杂度最小 。如“afdg**fa**hjfkdsl”变换成“****afdgfahjfkdsl”          此题前后字符串的长度...
分类:其他好文   时间:2014-06-20 10:49:56    阅读次数:296
排序算法
一、插入排序1.直接插入排序算法稳定,时间复杂度为O(n^2),空间移动复杂度为O(n2)如果序列是有序的,最好的时间复杂度为O(n)void insertSort(int data[],int n){ for(int i=1;i=0&&data[j]>temp) { d...
分类:其他好文   时间:2014-06-11 12:53:06    阅读次数:266
算法:找出 n 个数中最小的 k 个数
最简单的方法是将n个元素排序,取出最小的k个元素。这个算法的时间复杂度为 O(nlgn)。然而在输入的n个元素互异的情况下,利用最大堆,我们可以获得时间复杂度为 O(nlgk)的算法。 1 #include 2 3 #define N 128 4 5 int heap[N], max_s...
分类:其他好文   时间:2014-06-11 10:49:23    阅读次数:220
[LeetCode] Longest Valid Parentheses
第一种方法,用栈实现,最容易想到,也比较容易实现,每次碰到‘)’时update max_len,由于要保存之前的‘(’的index,所以spacecomplexity 是O(n) 1 // 使用栈,时间复杂度 O(n),空间复杂度 O(n) 2 class Solution { 3 publ...
分类:其他好文   时间:2014-06-11 09:16:10    阅读次数:197
白话经典算法二叉堆排序之思想简介
常用的排序算法有冒泡排序,插入排序和选择排序。他们的时间复杂度是o(n²),与数据量的平方成正比。他们的效率还是比较低的。现在来说说他们的效率为什么比较低下。以冒泡排序为例,它每一轮都是与相邻的元素进行交换,交换的距离为1,每次每个(没有冒泡出来的)元素都要与前一个比较再交换。每次相邻的比较只能比较出两个元素的大小,不能以整个数组进行参照来确定在整个数组里的大小,也就是说每次的比较不能确定其他元素...
分类:其他好文   时间:2014-06-07 16:16:01    阅读次数:172
[LeetCode] Longest Palindromic Substring [14]
最长回文字串,相信做过Palindrome Partitioning II 这个题的同学应该可以很快做出来。没错,这个题还可以使用动态规划方法得到一个时间复杂度为O(n^2)的解法,当然如果你想要更好的时间复杂度的算法也是有的。好的,我们先来看看时间复杂度为O(n^2)的算法。 代码实现--动态规划O(n^2) 相信如果你在网上看过了别人的算法,你会发现我的算法是最简洁的。哈哈,这个题需要注意的是如果你用惯了vector的话,你这里肯定会得到超时的提示... ...代码二--复杂度为O(n)的算法...
分类:其他好文   时间:2014-06-07 12:08:43    阅读次数:224
skip跳跃表的实现
skiplist介绍跳表(skip List)是一种随机化的数据结构,基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logN)。跳表的具体定义,跳表是由William Pugh发明的,这位确实是个大牛,搞出一些很不错的东西。简单说来跳表也是链表的一种,只不过它在链表的基础上增加了跳跃功能...
分类:其他好文   时间:2014-06-07 07:18:01    阅读次数:239
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!