判断题: 1-1 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 (2分) 1-2 将N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN)。 (3分) 1-3 通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), ...
分类:
其他好文 时间:
2016-10-22 12:17:07
阅读次数:
4334
1.问题:有1到100的连续整数数组a,现将其打顺序,并拿掉其中一个数,是找出一种空间复杂度和时间复杂度较小的方法,找到这个数。 2.思路1:空间换时间,申请100个空间的数组B,初始化为0,然后遍历一次乱序数组a, 令b[a[i]] = 1 (0 =< i < 99),在遍历一次数组b,若b[j] ...
分类:
其他好文 时间:
2016-10-16 13:51:28
阅读次数:
152
已知有两个链表,他们可能相交于某一点,求出该点。 方法1.对于第一个链表,每访问一个节点,对该节点做标记。访问第二个链表,如果该元素已经访问,则第一个这样的元素就是所求点。 由于两个链表都访问了一遍,因此时间复杂度O(m+n),空间复杂度O(m)或O(n) 方法2.我们定义节点的距离为节点到链表开始 ...
分类:
其他好文 时间:
2016-10-16 00:38:58
阅读次数:
300
本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个 ...
分类:
编程语言 时间:
2016-10-14 17:34:01
阅读次数:
292
1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度 ...
分类:
其他好文 时间:
2016-10-12 00:51:00
阅读次数:
211
1.有一串首位相连的珠子,总共m颗,每颗珠子都有自己的颜色,全部颜色共有n(n<=10),现在要在里面截取一段,要求包含所有不同的颜色,并且长度越短越好。求如何截取。请详细描述算法思路,可 以用伪代码来辅助描述。并求得时间复杂度和空间复杂度! for 每个珠子 出现新颜色的珠子,该颜色计数器加1,( ...
分类:
其他好文 时间:
2016-10-10 16:24:45
阅读次数:
148
leetcode 上的题目 Determine whether an integer is a palindrome. Do this without extra space. 由于不能使用额外空间,所以不能把数字转化为字符串后进行比较。因为这样空间复杂度将为线性。 leetcode给出了几点提示 ...
分类:
其他好文 时间:
2016-10-08 13:24:55
阅读次数:
175
算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制 一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 一个算法应该具有以下七个重要的特征: 时间复杂度 计算机科学中,算法的时间复杂度是一个函数,它定量描述了该 ...
分类:
编程语言 时间:
2016-10-06 00:18:59
阅读次数:
361
各种排序算法总结 空间复杂度: In-place sort(不占用额外内存或占用常数的内存):插入排序、选择排序、冒泡排序、堆排序、快速排序。 Out-place sort:归并排序、计数排序、基数排序、桶排序。 稳定性: stable sort:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶 ...
分类:
编程语言 时间:
2016-10-05 22:18:34
阅读次数:
467
堆排序 数据结构 数组 最差时间复杂度 O(n*log n) 最优时间复杂度 O(n*log n) 平均时间复杂度 O(n*log n) 最差空间复杂度 О(n) total, O(1) auxiliary 1、堆的基础知识 堆节点的访问 通常堆是通过一维数组来实现的。在数组起始位置为0的情形中: ...
分类:
编程语言 时间:
2016-10-05 07:11:37
阅读次数:
263