这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程。 充效率看 冒泡排序法<选择排序法<插入排序法 排序分两大类: 内部排序法 交换式排序法 冒泡法 基本思想: 冒泡排序法 冒泡排序法 案例: 12345678910111213141516171 ...
分类:
编程语言 时间:
2017-11-10 12:48:24
阅读次数:
268
概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说的八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基 ...
分类:
编程语言 时间:
2017-10-29 17:32:24
阅读次数:
216
一、冒泡排序 原理为两两交换,大数据就慢慢往一个方向移动,就像水里的泡泡一样,该排序很简单,无需多言。 上代码: 冒泡排序总结: 时间复杂度:平均情况O(n2),最好情况O(n),最坏情况O(n2) 空间度杂度:O(1) 稳定性:稳定 而我要说的另一个交换类的排序,就复杂得多了 快速排序。 二、快速 ...
分类:
编程语言 时间:
2017-10-22 00:26:43
阅读次数:
214
1) 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行 示例: 分析 快速排序的时间主要耗费在划分操作上,对长度为k的区间进行划分,共需k-1次关键字的比较。 最坏情况是每次划分选 ...
分类:
编程语言 时间:
2017-10-19 21:14:23
阅读次数:
315
8.排序 8.1排序概述 排序分为内部排序和外部排序 8.2冒泡排序法 基本思想 对待排序记录关键字从后往前(逆序)进行多遍扫描,当发现相邻两个关键字的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,关键字较小的记录将逐渐从后面向前面移动,就象气泡在水中向上浮一样,所以该算法也称为气泡排序 ...
分类:
编程语言 时间:
2017-10-11 21:53:00
阅读次数:
213
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一 ...
分类:
编程语言 时间:
2017-10-10 20:32:03
阅读次数:
182
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较 ...
分类:
编程语言 时间:
2017-09-30 16:15:57
阅读次数:
223
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣row ...
分类:
数据库 时间:
2017-09-29 01:40:27
阅读次数:
296
Java排序算法(一):概述 排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序队列。 对于排序算法从以下几点去衡量算法的优劣: 对于排序算法的分类: 外部排序: 多路归并排序 败者树 内部排序: 插入排序:直接插入排序,希尔排序 ...
分类:
编程语言 时间:
2017-09-27 14:26:19
阅读次数:
223
红黑树和B树应用场景有何不同? 2者都是有序数据结构,可用作数据容器。红黑树多用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树。B树多用在内存里放不下,大部分数据存储在外存上时。因为B树层数少,因此可以确保每次操作,读取磁盘的次数尽可能的少。 在数据较小,可以完全放到内 ...
分类:
其他好文 时间:
2017-09-15 10:16:21
阅读次数:
163