第一部分 选择题(共20分)一、单项选择题(本大题共8小题,每小题2分,共16分)
1.某算法的空间花费s(n)=100nlog2n+0.5n1.5+1000n+2000,其空间复杂度为[ ] A.O(1) B.O(n) C.O(n1.5)
D.O(nlog2n) 2.在单项链表中删除一个指定结点....
分类:
其他好文 时间:
2014-05-26 02:49:34
阅读次数:
194
题目:输入一个整型数组,数组里除了两个数出现一次之外,其它所有数字出现的次数都是2次,求这两个数字。要求时间复杂度为O(n),空间复杂度为O(1)
1 题目要求时间复杂度为O(n)并且空间复杂度为O(1)。这个时候朴素的方法利用数字来记录出现次数的方案都是不行的。
2 根据题目的特点,只有两个数出现一次,其它的所有数据都是出现2次。如果这两个数是a和b,那么对这个数组异或的结果就是a^...
分类:
其他好文 时间:
2014-05-24 14:17:24
阅读次数:
258
快速排序是笔试面试经常问到的一个排序。因此首先来复习快速排序。时间复杂度:O(n*lgn)
最坏:O(n^2) 空间复杂度:O(lgn),最坏O(n) 不稳定。
分类:
编程语言 时间:
2014-05-24 11:21:29
阅读次数:
326
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1).例如:输入{2,7,3,10,3,2,5,5}
, 输出 7 和 10 。大家首先想到的是顺序扫描法,但是这种方法的时间复杂度是O(n2)。接着大家又会考虑用哈希表的...
分类:
其他好文 时间:
2014-05-24 01:10:20
阅读次数:
286
一次过,空间复杂度为O(m+n), 下一次做的时候寻找constant space
solution。用boolean array也可以,用bit vector可能会更节省 1 import java.util.*; 2 3 public
class Solution { 4 public...
分类:
其他好文 时间:
2014-05-23 08:30:28
阅读次数:
278
算法基本概念:算法:用来对数据的操作作描述,是对问题求解的步骤的描述。是一系列将输入转为输出的计算步骤算法复杂度:分为时间复杂度和空间复杂度时间复杂度:算法中所有语句的频度之和用T(n)表示,记为T(n)
= O(n)常见时间复杂度递增次序:常数 O(1) , 对数阶O(log2^n) , 线性阶O...
分类:
其他好文 时间:
2014-05-22 14:23:34
阅读次数:
212
一、算法思想描述 1、设置一定的步长 2、将整个序列根绝步长分成若干个子序列。对每个子序列执行直接插入排序 3、重复步骤2,直到步长为1(包含1)二、算法分析 希尔排序,也叫缩小增量排序,是插入排序的一种,他对插入排序进行了一定的优化。 时间复杂度:一般认为,在某些序列中可以达到O(n^1.3) 空间复杂度:O(1) ...
分类:
其他好文 时间:
2014-05-22 08:49:36
阅读次数:
213
一、算法思想描述 归并排序:先递归分解序列,然后在合并有序序列。其过程描述如下:每次输出A、B这两个有序序列中的最小的一个。 二、算法分析 时间复杂度:最差、平均、最好的时间复杂度都是O(nlgn); 空间复杂度:O(n) 稳定性: 稳定三、算法实现 /*
* mergesort.cpp
*
* Created on: 2014年5月18日...
分类:
其他好文 时间:
2014-05-22 07:29:44
阅读次数:
250
排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一定O(n)插入排序O(n2)O(n2)稳定O(1)堆排序O...
分类:
其他好文 时间:
2014-05-21 23:31:35
阅读次数:
310
k邻近算法采用测量不同特征值之间的距离方法进行分类。优点:精度高、对异常值不敏感、没有数据输入假定;缺点:计算复杂度高、空间复杂度高(占内存);使用数据范围:数值型和标称型。
k-邻近算法的工作原理是:存在一个训练样本集,并且每个数据都存在标签,即我们知道每个数据都对应的哪个分类。输入一个没有标签的新数据,将新数据的每个特征和样本集中的所有数据进行笔记哦啊,提取出样本集中特征最相似(邻近)的分类...
分类:
编程语言 时间:
2014-05-20 16:54:05
阅读次数:
534