概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比...
分类:
编程语言 时间:
2014-11-30 00:19:29
阅读次数:
228
#!/usr/bin/env python
#Filename:readfile.py
codelist=[]
f=file('input.txt','r')
lines = f.readlines();
for i in range(len(lines)):
line=lines[i].strip('\n');
print line
codelist...
分类:
编程语言 时间:
2014-11-29 21:48:47
阅读次数:
279
六大比较排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序和快速排序,伪代码与C语言实现
分类:
编程语言 时间:
2014-11-28 11:34:09
阅读次数:
273
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), ne...
分类:
编程语言 时间:
2014-11-26 23:59:34
阅读次数:
350
1 void merge_sort(int *A, int x, int y, int *T) 2 {//x为左端点,y为右端点 3 // 4 if(y-x= y) || (p = m || A[p] > A[q]时,将右半数组元素复制到临时空间19 T[i...
分类:
编程语言 时间:
2014-11-25 23:26:45
阅读次数:
298
合并排序算法在结构上是递归的,采用分治策略:就是将原有的问题划分为 n 个规模较小但结构与原问题相似的子问题,递归地解决这些子问题,然后合并其结果,就得到原问题的解。 合并排序的模式一般如下: 1.分解:将 n 个元素分解为各含 n/2 个元素的两个序列; 2.解决:用分治排序法对两个子序...
分类:
编程语言 时间:
2014-11-25 20:13:40
阅读次数:
263
http://blog.csdn.net/hguisu/article/details/7776068 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时....
分类:
编程语言 时间:
2014-11-25 18:12:37
阅读次数:
153
Sort a linked list in O(n log n)
time using constant space complexity.
大家看完题目估计跟我一样啦。。。都在想哪些是nlogn啊~快速排序、归并排序、堆排序!然后开始愁,这些东西变成list了可怎么办啊。。。
可是我深深地记得在CMU的时候老师告诉我,java现在自带的Arrays.sort用的是快排,然后我就想,那么…...
分类:
编程语言 时间:
2014-11-24 10:10:04
阅读次数:
170
归并排序就是把数组A分成2个数组A1和A2,再对A1和A2也分别平分,直到不能分为止,即只有1个元素了.再依次合并.是一个分和合的过程. 代码是在ubuntu下的vim里写的.我加了很多打印,从打印结果里面可以看出程序是怎么一步一步执行的,本来要画个图的,因为没找到比较好的工具(ubuntu下),....
分类:
编程语言 时间:
2014-11-21 21:50:57
阅读次数:
298