概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比 ...
分类:
编程语言 时间:
2016-11-03 13:58:48
阅读次数:
268
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、 ...
分类:
编程语言 时间:
2016-10-31 13:07:20
阅读次数:
352
之前看到堆排序的升序排列,改改成了降序的 参考原文http://www.cnblogs.com/kongxianghai/p/4004469.html ...
分类:
编程语言 时间:
2016-10-27 09:53:20
阅读次数:
126
数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法。现在介绍选择排序算法,希尔排序算法,快速排序算法。(1).选择排序算法:通过n-i次关键..
分类:
编程语言 时间:
2016-10-25 20:18:03
阅读次数:
271
简介本篇文章总结一下最近学习的排序算法,提炼出其思想及不同之处。有归并排序,快速排序,堆排序以及冒泡排序归并排序(Merging Sort)
归并是指将两个或两个以上的有序表组合成一个新的有序表。
归...
分类:
编程语言 时间:
2016-10-21 20:20:46
阅读次数:
340
基本思想:将待排序的序列构成一个大顶堆。此时,最大的值就是堆顶,将它一走,并将余下的序列重新构造成一个堆。如此反复。 ...
分类:
编程语言 时间:
2016-10-17 11:27:53
阅读次数:
206
[数据结构学习备忘录] 一种数据结构,物理存储方式:数组 逻辑存储方式:近似于完全二叉树,假定i为堆元素的序数[Index],那么i/2就是该元素的左子树,(i/2 + 1)就是该元素的右子树,分为两种堆:大根堆、小根堆;这两种堆的区别是:大根堆的根节点元素的值比左右子树的值都要大,小根堆则相反。 ...
分类:
编程语言 时间:
2016-10-15 13:39:30
阅读次数:
138
堆排序是一种常见的排序算法,因为他的时间复杂度相比较于其他排序来说是比较优化的了。他的思想就是:先建一个大堆(即堆顶元素是堆中最大的),然后将堆顶元素与堆的最后一个元素交换,堆的大小减一(此时堆中最后一个元素已经是堆中最大的了),然后对剩下的元素再进行排序,如此循环,当堆中元素只剩一个的时候堆排序就 ...
分类:
编程语言 时间:
2016-10-15 11:16:33
阅读次数:
194
快速排序 1、思想 快速排序将一个数组分成两个数组,再对两个数组独立排序,是个递归算法。 首先随机选出一个切分元素temp(一般为这个数组的第一个元素),将小于temp的数放在temp的左边,将大于temp的数放在temp的右边。 快排和堆排序很像,他们都是将一个数组分成两个子数组,都属于递归算法。 ...
分类:
编程语言 时间:
2016-10-09 13:28:00
阅读次数:
165