码迷,mamicode.com
首页 >  
搜索关键字:复杂度    ( 16171个结果
算法整理(二)---高速排序的两种实现方式:双边扫描和单边扫描
首先简单谈下高速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2),平均时间O(nLog n).由于用到了函数栈,空间复杂度为O(lg n),最差为O(n).是一种不稳定的排序方法。基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/art...
分类:其他好文   时间:2014-07-16 19:29:46    阅读次数:210
白话经典算法系列之七 堆与堆排序
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:其他好文   时间:2014-07-16 19:26:44    阅读次数:192
巧妙的邻接表(数组实现)
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。4 51 4 94 3 81 2 52 4 61 3 7第一行两个整数n m。n表示顶点个数(顶点编号为1~n),...
分类:其他好文   时间:2014-07-15 09:06:33    阅读次数:282
如何给10^7个数据量的磁盘文件进行排序--归并排序
接上面的题目,假若待排序的数据有重复的呢?这里采用的是归并排序。1、算法分析: 1、稳定性:归并排序是一种稳定的排序。 2、存储结构要求:可用顺序存储结构。也易于在链表上实现。 3、时间复杂度: 对长度为n的文件,需进行lgn趟二路归并,每趟归并的时间为O(n),故其时间复杂度无论是在最好情况下还是...
分类:其他好文   时间:2014-07-13 20:35:20    阅读次数:373
leetcode——Search a 2D Matrix 二维有序数组查找(AC)
如果直接对矩阵元素进行二分查找的话,时间复杂度是O(m*n),其实很容易想到先通过查找找到对应可能存在于哪一行,然后再在那行中查找是否存在,采用最简单的直接查找这样时间复杂度仅有O(m+n),如果这两次查找再分别采用二分查找的话,时间复杂度更可以降低到O(logm+logn),下面是O(m+n)的代码:...
分类:其他好文   时间:2014-07-13 18:50:21    阅读次数:228
计数排序、桶排序python实现
计数排序在输入n个0到k之间的整数时,时间复杂度最好情况下为O(n+k),最坏情况下为O(n+k),平均情况为O(n+k),空间复杂度为O(n+k),计数排序是稳定的排序。 桶排序在输入N个数据有M个桶时,如果每个桶的数据接近N/M个且桶内使用基于比较的排序,则桶排序的时间复杂度为O(N+M*N/M*log(N/M)).如果N=M时,每个桶只有一个数据,时间复杂度降低为O(N). 桶排序的时间...
分类:编程语言   时间:2014-07-13 17:19:49    阅读次数:215
POJ 1742 Coins
多重背包的可行性问题。 题意是说 一块表的价格不超过M。你有一些不同数量,也不同面额的硬币。在1-M中你能组成多少种可能。 傻逼的理解成组成不超过M的最大价值。ORZ。。。认真读题…… 时间复杂度 O(M*N) #include #include #include using namespace std; int dp[2][100005]; int n,m; ...
分类:其他好文   时间:2014-07-13 16:19:39    阅读次数:172
编程算法 - 圆圈中最后剩下的数字(循环链表) 代码(C++)
圆圈中最后剩下的数字(循环链表) 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目: 0,1...,n-1这n个数字排成一个圆圈, 从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里最后剩下的数字.使用循环链表, 依次遍历删除, 时间复杂度O(mn), 空间复杂度O(n).代码:/* * main.cpp * * Created ...
分类:编程语言   时间:2014-07-13 16:15:24    阅读次数:226
给定N个整数集合是否存在两个其和刚好为指定常数的元素
重新学习一遍,看到了这个问题: 描述一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数 X 时,判断出S中是否存在有两个其和刚好等于 X 的元素。 Solution: (1)->对整个集合进行排序,可以用快排(含有小文件策略、三者取中策略),时间复杂度O(nlogn),形成一个数组A[n]。  ->设定两个下标pBegin和pEnd,分别指向数组...
分类:其他好文   时间:2014-07-13 15:46:55    阅读次数:197
HDU 1171 Big Event in HDU
也是多重背包可行性问题。时间复杂度为 O(VN); V=背包容量,N=物品数量。 题意是说给你N个物品,每个物品有不同的价值与数量。分给两个院。 问你怎么分配才让能让价值尽量相等。 跟我上一篇解题报告是一种类型。以价值为费用,总价值的一半为背包容量。 不过物品有点多,直接开数组可能会超内存。我就用了滚动数组。 需要注意的是 you should guarant...
分类:其他好文   时间:2014-07-13 15:45:40    阅读次数:208
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!