几种排序
Java小课堂
1.背景介绍
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。
内部排序是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。其中快速排序的是目前排序方法中被认为是最好的方法。
2.知识剖析
基本排序:
1.选择排序。
2.冒泡排序。
3.希尔排序。
4.直接插入排序。
5.快速排序
6.堆排序。
7.归并排序。
8.基数排序 。
排序定义
1.选择排序,工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
2.冒泡排序,比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,直到没有任何一对数字需要比较。
3.希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法
4.直接插入排序,有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序这个时候就要用到一种新的排序方法——插入排序法
5.快速排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
3.常见问题
排序过程中主要是数组越界,和空指针异常。
4.解决方案
仔细查看排序逻辑。
5.编码实战
6.扩展思考
7.参考文献
百度,CSDN博客
8.更多讨论
今天的分享就到这里啦,欢迎大家提问和探讨!
q:排序主要bug
a:空指针异常,数组越界
q:那种排序最快
a:快拍,快速排序的递归方法排序最快
q:堆排序是什么
a:堆排序就是二叉树排序,采用树形结构排序