码迷,mamicode.com
首页 >  
搜索关键字:空间复杂度    ( 2067个结果
链表——单链表的排序
题目要求: 对单链表进行从小到大排序,要求时间复杂度O(N*logN),空间复杂度O(1); 思路: 因时间复杂度要求为O(N*logN),简单排序(时间复杂度为O(N*N))均不可用, 故可以考虑归并排序的思想,归并排序对数组操作空间复杂度为O(n),但对链表为O(1),因为每次只在merge函数中创建了一个辅助的链表头结点ListNode temp=new ListNode(0...
分类:编程语言   时间:2016-05-12 19:27:04    阅读次数:542
顺序表应用3:元素位置互换之移位算法
一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。 注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,...
分类:编程语言   时间:2016-05-12 17:33:06    阅读次数:192
算法的时间复杂度和空间复杂度分析
一 算法的时间复杂度分析  (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 (2)...
分类:编程语言   时间:2016-05-12 15:41:59    阅读次数:239
[数据结构] 冒泡排序
实现步骤、时间复杂度度和空间复杂度、java代码实现...
分类:编程语言   时间:2016-05-11 11:27:45    阅读次数:144
LeetCode : 287. Find the Duplicate Number
如果没有限制,这是一道很简单的题目。 但是有趣的是,要用O(1)的空间复杂度和小雨O(n2)的时间复杂度解决。 这里遇到了一个很有趣的算法:龟兔算法。 Adam:龟兔算法为什么有效: http://adam8157.info/blog/2015/08/why-does-tortoise-and-ha ...
分类:其他好文   时间:2016-05-10 12:27:36    阅读次数:174
[LeetCode]题解(python):142-Linked List Cycle II
题目来源: https://leetcode.com/problems/linked-list-cycle-ii/ 题意分析: 给定一个链表,如果链表有环,返回环的起始位置,否则返回NULL。要求常量空间复杂度。 题目思路: 首先可以用快慢指针链表是否有环。假设链表头部到环起点的距离为n,环的长度为 ...
分类:编程语言   时间:2016-05-09 18:26:56    阅读次数:148
数组中未出现的最小正整数(算法)
题目: 给定一个无序数组arr,找到数组中未出现的最小正整数。要求:时间复杂度O(n),额外空间复杂度O(1); 变量的解释l:表示从1-l已经存在的数r:表示1-r想要得到的数 初始值:l=0r=n 走的过程 1>当l的位置值等于l+1,表示得到想要的2>当l的位置值<l时,表示l位置的值已经存在 ...
分类:编程语言   时间:2016-05-09 11:08:25    阅读次数:635
调整数组顺序使奇数位于偶数前面
第一种:开辟一个一样大小的数组,遍历原数组的数据,把原数组奇数依次存放在新数组的前面,偶数存放在后面。时间复杂度:O(n^2);空间复杂度:O(n)缺陷:效率太差#include<stdio.h> #include<stdlib.h> voidAdjust(int*src,int*des,intn) { intindex=0; for(int..
分类:编程语言   时间:2016-05-09 07:21:48    阅读次数:189
算法 笔记1 时间复杂度计算
评价一个算法的优劣应该从三个方面判断 1.时间复杂度 : 执行算法所耗费的时间,即时间复杂度 2.空间复杂度 : 执行算法所耗费的存储空间,主要是辅助空间 3.可读性和可操作性 : 算法应当易于理解,易于编程,易于调试等 时间复杂度 一般情况下,将算法所要求求解问题的输入量称为问题的规模,并用一个正 ...
分类:编程语言   时间:2016-05-09 00:01:49    阅读次数:341
时间复杂度与空间复杂度
1、时间复杂度所谓时间复杂度实际上就是函数,既是函数计算执行的基本操作次数。ps:这里的函数是指数学里面的函数,而不是C语法里的函数。如下面这个代码:voidTest1(intN){for(inti=0;i<N;++i){for(intj=0;j<N;++j){//...}}for(intk=0;k<2*N;++k){//...}intcount=10;..
分类:其他好文   时间:2016-05-08 20:08:11    阅读次数:225
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!