排序与查找 大多数程序设计的入门经典:排序与查找。排序和查找的经典算法已经固定,作为不同场景设计的调优基础。这些算法的提出和优化过程还是很有趣的。有兴趣可以参看Donald E. Knuth的《计算机程序设计艺术(第3卷)》排序与查找,非常有趣,值得业余一看。还有一篇关于算法的讨论。 排序 内排序与... ...
分类:
编程语言 时间:
2017-07-08 00:27:53
阅读次数:
285
排序(比较与交换)
排序的稳定性:
排序之前,R[i]在R[j]前面,排序后,R[i]还在R[j]前面,则这个排序方法是稳定的。否则这个排序
方法是不稳定的。
外排序:----依赖---》内排序
待排序的数据元素数量很大,整个序列的排序过程不可能在内存中完成。
内排序:
整个排序过程不需要访问..
分类:
编程语言 时间:
2017-05-27 23:55:14
阅读次数:
247
归并排序在外排序和内排序的作用都是非常大的,本人觉得要是要用户外排。在处理大数据排序,当内存大小不足以把所有数据一次载入时,这时就需要归并排序。以下进行的是2路归并排序为主。 数组递归归并 1 void mergeCore(int *src,int * &dest,int i,int m,int n ...
分类:
编程语言 时间:
2017-05-26 18:23:11
阅读次数:
129
《数据结构与教程 第二版》(北航出版社) 数据结构 线性表 数组、串、广义表 特殊线性表:栈、队列 栈、队列 存储:线性存储、链式存储 基本操作(6):初始化、判空、判满、进、出、取头元素 树:见 数据结构_树与二叉树总结-MarchOn 图:见 数据结构_图总结-MarchOn 索引、散列 内排序 ...
分类:
其他好文 时间:
2017-05-21 21:51:47
阅读次数:
181
总结:排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 ( ...
分类:
编程语言 时间:
2017-04-29 15:13:49
阅读次数:
161
一、常用排序算法简述 下面主要从排序算法的基本概念、原理出发,分别从算法的时间复杂度、空间复杂度、算法的稳定性和速度等方面进行分析比较。依据待排序的问题大小(记录数量 n)的不同,排序过程中需要的存储器空间也不同,由此将排序算法分为两大类:【内排序】、【外排序】。 内排序:指排序时数据元素全部存放在 ...
分类:
编程语言 时间:
2017-04-24 00:58:54
阅读次数:
247
1.什么是排序 排序就是将一个数据元素(或记录)的任意序列,通过一定的方法重新排列成一个按关键字有序的序列的过程。 2.排序的稳定性 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri ...
分类:
编程语言 时间:
2017-04-16 17:52:05
阅读次数:
174
堆排序的时间复杂度是O(nlgn),与归并排序一样,但它又与插入排序一样具有空间原址性:任何时候都只需要常数个额外的元素空间存储临时数据。 什么是堆?一般堆用数组存储,表现出近似完全二叉树形式,树上的每一个结点对应数组中的一个元素。除了最底层外,该树是完全充满的且从左至右填充。 maxHeapify ...
分类:
编程语言 时间:
2017-02-20 22:34:59
阅读次数:
164
一、外排序排序按数据存在的位置不同分为内排序和外排序内排序:数据都在内存中,选择合适的排序方法对数据进行排序,比如选择排序、快速排序等衡量内排序的效率是数据的比较次数外排序:数据无法全部加载到内存中,只能不断在外部存储器和内存中进行交换完成排序衡量外排序的..
分类:
编程语言 时间:
2017-02-12 16:11:22
阅读次数:
389
来来来,根据这篇文章,学一下败者树吧: http://blog.csdn.net/whz_zb/article/details/7425152 一、胜者树 胜者树的一个优点是,如果一个选手的值改变了,可以很容易地修改这棵胜者树。只需要沿着从该结点到根结点的路径修改这棵二叉树,而不必改变其他比赛的结果 ...
分类:
编程语言 时间:
2016-12-06 20:21:51
阅读次数:
191