各种排序算法比较各种常用排序算法类别排序方法时间复杂度空间复杂度稳定性复杂性特点最好平均最坏辅助存储简单插入排序直接插入O(N)O(N2)O(N2)O(1)稳定简单希尔排序O(N)O(N1.3)O(N2)O(1)不稳定复杂选择排序直接选择O(N)O(N2)O(N2)O(1)不稳定堆排序O(N*log...
分类:
编程语言 时间:
2015-12-31 12:34:22
阅读次数:
152
时间空间复杂度分析:牺牲时间换取空间,或者牺牲空间换取时间:如果空间很大,可以用多线程来,可以大大提速如果空间很小,只用一个元素,这样增加了时间用 异或^ 不用借助中间变量就能实现数据的交换 a^=b 要完成两个数组之间的交换,用一个数组来作为临时中间变量进行交换时,可以用多线程,相比只用一个数.....
分类:
其他好文 时间:
2015-12-14 23:00:17
阅读次数:
430
K临近算法是基于实例的学习,使用算法的时候我们必须要有接近分类结果的实例训练样本数据。优点:精度高,对异常值不敏感缺点:时间复杂度和空间复杂度比较大。(如果训练样本数据集比较大,需要大量的空间来保存数据,并且需要待预测数据和训练样本数据集每条数据的距离,耗费时间。)无法给出任何数据的基础结构信息,因...
分类:
编程语言 时间:
2015-12-10 21:58:44
阅读次数:
362
66.颠倒栈。题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1 在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5 处在栈顶。思路: 首先想到的是再创建一个新栈,用来接收旧栈的数据,但这样空间复杂度是o(n),可不可以用原有的栈完成颠倒的操作呢?假设栈里只有两个元素1,2,...
分类:
编程语言 时间:
2015-12-05 17:27:57
阅读次数:
154
knn算法:1.优点:精度高、对异常值不敏感、无数据输入假定2.缺点:计算复杂度高、空间复杂度高。3.适用数据范围:数值型和标称型。一般流程:1.收集数据2.准备数据3.分析数据4.训练算法:不适用5.测试算法:计算正确率6.使用算法:需要输入样本和结构化的输出结果,然后运行k-近邻算法判定输入数据...
分类:
编程语言 时间:
2015-12-05 15:48:05
阅读次数:
152
主元素 II给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。样例给出数组[1,2,1,2,1,3,3]返回 1注意数组中只有唯一的主元素挑战要求时间复杂度为O(n),空间复杂度为O(1)。嗯。。 百度了一下。主元素可能有两个,于是设置两个当前主元素。遍历nums,如...
分类:
其他好文 时间:
2015-12-04 17:56:16
阅读次数:
165
最近在看MIT的算法导论,在网易公开课上有这门课的视频,正好讲义也在图书馆借到了,有在看的小伙伴可以一起加油。绪论中以插入排序为例,讲述了算法中非常重要的两个概念时间复杂度T(n)和空间复杂度。详细地对程序花费时间T。伪代码: INSERTION-SORT(A)1 for j←2 to length...
分类:
编程语言 时间:
2015-12-04 00:44:31
阅读次数:
157
原理:使用三个指针,p,q指向交换的元素,r指向后续元素代码如下:class Node{ int data; Node next; Node(int data){ this.data=data; }} Node reverse(Node head) { if(head==null || hea...
分类:
其他好文 时间:
2015-11-30 19:57:59
阅读次数:
144
反转后一半,然后判断,不过这样子会改变输入的数据,感觉不太好。也可以用一个栈,但是那样的话空间复杂度就不符合标准了。/** * Definition for singly-linked list. * public class ListNode { * int val; * List...
分类:
其他好文 时间:
2015-11-29 10:43:00
阅读次数:
171
算法效率的度量方法*事后统计方法:这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同酸防编制的程序运行时间进行比较,从而确定算法效率的高低。这种方法有很大的缺陷,必须依据算法事先编制好测试程序,通常需要花费大量时间和精力,如果完了发觉测试的是糟糕的算法,就会功亏一篑。不同测试环境侧别也...
分类:
其他好文 时间:
2015-11-26 16:55:52
阅读次数:
122