摘要: 一、基本思想 对于一个待排序的序列,递归地将前半部分数据和后半部分数据各自归并排序,得到排序后的两部分数据,然后合并这两个部分。 归并算法采用分而治之的策略: a. 将问题分成一些小的问题然后递归求解; b. 将分的阶段解得的各个答案“修补”到一起。 可以看到这种结构很像一棵完全二叉树,故我们可以采 阅读全文
posted @ 2018-09-03 22:22 GGBeng 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 堆排序属于选择排序,它是利用堆这种数据结构而设计的一种排序算法。 升序排序采用最大堆,而降序排序采用最小堆。 二、基本思想 将待排序的数列构造成一个最大堆,每次都取堆顶的元素,将其放在数列的最后面,然后将剩余的元素重新调整为最大堆,依次类推,最终得到升序的序列。 主要过程:构建最大堆 + 阅读全文
posted @ 2018-09-03 20:54 GGBeng 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 希尔排序属于插入排序,它是对直接插入排序改进后的一个更高效的版本,也称为缩小增量排序。 该算法是冲破O(n2)的第一批算法之一,它的平均复杂度为O(n1.3),最坏时间复杂度为O(n2)。 二、基本思想 对于一个具有n个元素的数组,取一个增量(gap)将其分组(距离为gap的倍数的元素放在 阅读全文
posted @ 2018-09-03 19:44 GGBeng 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 一、选择排序 1. 基本思想 第一次从R[0]~R[n-1]中选取最小值,与R[0]交换; 第二次从R[1]~R[n-1]中选取最小值,与R[1]交换;….; 第 i 次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换;….; 第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n 阅读全文
posted @ 2018-09-03 17:16 GGBeng 阅读(396) 评论(0) 推荐(0) 编辑