
排序算法
排序算法总结
敲算功成师
淡泊宁静,平凡未必平庸;向阳而生,孤独却不寂寞。
展开
-
排序-----归并排序
归并排序(MergeSort)定义: 将数组分为两半,分别对这两半进行排序,然后将它们合并为一个有序的数组 该算法采用分治(divide and conquer)策略。分(divide)是将问题分成小块,治(conquer)是指攻克每个小块以达成解决方案。具体:1.将一个乱序的数组按mid值分为两个数组(新建一个数组用于存储顺序元素)。2.将一个数组中的项与另一个数组中...原创 2018-06-18 20:33:43 · 160 阅读 · 0 评论 -
排序-----希尔排序
希尔排序(ShellSort) 简介: 是一种改进的插入排序。因为插入排序只适合数组基本有序的情况,当数组完全无序的时候,插入排序需要很长时间。希尔排序的实质是分组插入排序,又称缩小增量排序。 基本实现: 1.先将序列按照某个增量(一般为n/2)进行拆分 2.使用插入排序对子序列进行排序 3.缩小增量继续拆分,拆分后再排序 4.若增量为1,则对整个数组使用插入排序 ...原创 2018-06-18 16:26:19 · 1909 阅读 · 1 评论 -
排序------插入排序
插入排序(InsertionSort)定义:对数组的插入排序将数组分为两部分,第一部分是有序的,初始时只含有数组的第一项。第二部分含有其余的项。进行插入排序时,从未排序部分移走第一项,并将它插入有序部分中合适的有序位置。如图: <1>迭代插入排序public class InsertionSort { pub...原创 2018-06-17 21:26:54 · 196 阅读 · 0 评论 -
排序-----选择排序
选择排序(SelectionSort)定义:指每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。就数组a来说,选择排序找到数组中的最小的项,将他与a[0]交换,然后忽略a[0],排序找到下一个最小的项并换到a[1],以此类推。如图: 代码:<1>迭代选择排序&...原创 2018-06-17 17:34:58 · 183 阅读 · 0 评论