排序
Ysfcsdn2016
伪极客,初级选手!!!!
展开
-
常被提到的排序算法二(选择排序)
选择排序可以被称为野蛮的排序其思想是对于给定的一组记录,经过第一轮得到最小的记录,然后把它排在第一位;之后再继续查找,找到第二小的记录,把它放在第二位。选择排序和冒泡排序的区别以下来自百度查询到的结果区别在于:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该原创 2017-04-13 10:02:23 · 1698 阅读 · 0 评论 -
常被提到的排序算法三(插入排序)
插入排序具体算法过程:假设有10个元素,首先排序前两个元素,然后继续扫描下一个元素,依次与已排序的元素进行比较,然后插入到已排序的队列的合理位置中,继续扫描下一个元素,知道所有元素都被扫描完。很明显,插入排序也是稳定的排序。具体代码如下:/** * @author yangshunfan * 插入排序具体代码 */public class test06原创 2017-04-15 13:12:03 · 287 阅读 · 0 评论 -
常被提到的排序四(希尔排序)
希尔排序下面是《算法》书中对希尔排序的解释:希尔排序的思想是使数组中任意介个为h的元素都是有序的。这样的数组被称为h有序数组。换句话说,一个h有序数组就是h个互相独立的有序数组编织在一组成的一个数组。在及进行排序时,如果h很大,我们就能将元素移动到很远的地方,为实现更小的h有序创造方便。用这种方式,对于任意以1结尾的h序列,我们都能够将数组排序。希尔排序: 希尔排序我个人原创 2017-05-04 20:59:32 · 341 阅读 · 0 评论 -
Java快速排序
快速排序快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立的进行排序。 过程主要是这样的(按我的理解):先确定一个值,哪一个都行,然后让数组其他的数与他进行比较,比这个数大的放在右边,小的放在左边,这样就形成的两个数组,然后使用递归的方法对其两个子数组进行排序。 通过递归可以了解,就是通过一次次的快排,每一次都将数组一分为二这样来排序的,因为一分为二的过程中总是能排定一个元素,...原创 2017-05-31 09:52:59 · 317 阅读 · 0 评论