码迷,mamicode.com
首页 >  
搜索关键字:复杂度分析    ( 263个结果
数组中只出现一次的数据
题目来源:《剑指offer》面试题40 题目:一个整形数组除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度O(n),空间复杂度O(1) 分析:运用异或的思想。我们从头到尾一次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结...
分类:编程语言   时间:2015-09-04 22:33:48    阅读次数:206
常用排序算法总结---Java实现
各个排序总结,以及时间,空间复杂度分析一.冒泡排序: /* 冒泡排序: 排序算法思想:进行n-1趟排序,每趟,相邻元素,两两相互比较,将其中如果前一个元素比后一个元素小 则令其交换。(最后的结果是,小的往后移(从大到小的冒泡)) */ class BubleSort { public static void main(String[] args) { int[] arr ...
分类:编程语言   时间:2015-08-29 12:44:30    阅读次数:213
算法的时间复杂度分析
在上一篇文章中对时间复杂度及其举例进行了简单描述,本篇文章将分析算法的时间复杂度和相关方法。1、事前分析估算的方法 因事后统计方法更多的依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。因此人们常常采用事前分析估算的方法。本文对事后统计方法不做描述。在编写程序前,依据统计方法...
分类:编程语言   时间:2015-08-21 19:01:02    阅读次数:1105
红黑树的插入和遍历时间复杂度分析
红黑树的插入和遍历时间复杂度分析          在平常的工作中,最常用的一种数据结构恐怕是std::map了。因此对其的时间复杂度分析是有必要的,编写程序时做到心中有底。   一、理论分析        在stl中std::map和std::set都采用红黑树的方式实现。我们知道插入一个元素到红黑树的时间为log(N),其中N为当前红黑树的元素个数,因此,采用插入方式构建元素个数...
分类:其他好文   时间:2015-08-20 13:19:39    阅读次数:780
算法复杂度解析
摘要       本文论述了在算法分析领域一个重要问题——时间复杂度分析的基础内容。本文将首先明确时间复杂度的意义,而后以形式化方式论述其在数学上的定义及相关推导。从而帮助大家从本质上认清这个概念。 前言       通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的...
分类:编程语言   时间:2015-08-11 18:55:02    阅读次数:231
欧几里得算法实现、正确性证明及时间复杂度分析
求最大公约数的最常用的算法是欧几里得算法,也称为辗转相除法。问题定义为求i和j的最大公约数gcd(i,j),其中i和j是整数,不妨设i>j。算法可以递归的表示:1.如果j能整除i,那么gcd(i,j)=j;2.j不能整除i,令r=i%j,那么gcd(i,j)=gcd(j,r). 上面的算法对于ij....
分类:编程语言   时间:2015-08-11 10:00:37    阅读次数:129
七大排序算法
排序各种排序算法的比较 冒泡排序基本定义两两比较相邻记录的的关键字,如果反序则交换,直到没有反序的记录为止。时间复杂度分析最好的情况是,数组是有序的,只需要n - 1次的比较,时间复杂度是O(n)O(n) 最坏的情况是,数组是逆序的,需要比较∑i=2n(i?1)=1+2+3+...+(n?1)=n(n?1)2\sum_{i=2}^{n} (i - 1) = 1+2+3+...+(n-1) = \...
分类:编程语言   时间:2015-08-03 22:41:28    阅读次数:194
数据结构基础 算法复杂度分析(一) 概念篇
为什么要进行算法分析? 预测算法所需的资源 计算时间(CPU 消耗)内存空间(RAM 消耗)通信时间(带宽消耗) 预测算法的运行时间 在给定输入规模时,所执行的基本操作数量,或者称为算法复杂度(Algorithm Complexity) 如何衡量算法复杂度? 内存(Memory)时间(Time)指令的数量(Number of Steps)特定...
分类:编程语言   时间:2015-08-02 21:44:16    阅读次数:213
数据结构基础 算法复杂度分析(二) 典例篇
示例代码(1) decimal Factorial(int n) { if (n == 0) return 1; else return n * Factorial(n - 1); } 【分析】 阶乘(factorial),给定规模 n,算法基本步骤执行的数量为 n,所以算法复杂度为 O(n)。 示例代码(2) int FindMaxElement(int[] array) { int max = array[0]...
分类:编程语言   时间:2015-08-02 21:43:05    阅读次数:174
leetcode 238 Product of Array Except Self
这题看似简单,不过两个要求很有意思:1、不准用除法:最开始我想到的做法是全部乘起来,一项项除,可是中间要是有个0,这做法死得很惨。2、空间复杂度O(1):题目说明了返回的那个数组不算进复杂度分析里面做法:既然不用除法,对于某个数i, result[i] = 0到i - 1的乘积 X i + 1...
分类:其他好文   时间:2015-08-02 19:46:56    阅读次数:124
263条   上一页 1 ... 19 20 21 22 23 ... 27 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!