摘要: 1、算法介绍 归并排序采用分而治之的思想进行排序,需要额外的内存空间。 (1)申请arrRes与未排序序列arr相同内存空间,用于存放归并后的序列 (2)将未排序序列分为两份arrL与arrR,从arrL与arrR分别取出一个元素进行比较,较小的并入arrRes序列, 从并入元素所属的序列取下一个进 阅读全文
posted @ 2019-05-29 14:36 笃志弘毅 阅读(281) 评论(0) 推荐(0) 编辑
摘要: (1)func len(v Type) int 返回长度,取决于具体类型;字符串返回字节数;channel返回缓存元素的个数; (2)func cap(v Type) int 返回容量,取决于具体类型;切片返回底层数组长度;channel返回缓存容量; (3)func append(slice [] 阅读全文
posted @ 2019-05-29 14:12 笃志弘毅 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 1、算法介绍 1.1、数据结构——堆 堆是一种近似完全二叉树的数据结构,其主要性质是:节点值大于等于(小于等于)其子节点的值。 大顶堆:节点值大于等于其子节点的值,用于升序排序。 小顶堆:节点值小于等于其子节点的值,用于降序排序。 1.2、堆的构建 1.3、算法步骤 (1)未排序序列构建堆 (2)堆 阅读全文
posted @ 2019-05-29 14:06 笃志弘毅 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 1、算法介绍 (1)在未排序序列中找出最小元素,与未排序的第一个元素交换 (2)剩余未排序序列重复步骤(1) 2、代码实现 2.1、golang 2.2、python3 阅读全文
posted @ 2019-05-29 11:11 笃志弘毅 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 1、算法介绍 快速排序是一种分而治之的思想。 (1)从待排序序列找一个元素(一般取第一个元素)作为基准元素 (2)遍历序列,小于基准元素排在基准元素左边,大于基准元素的排在基准元素右边,相等可随意(不稳定) (3)递归基准元素左右两边的序列进行步骤(1)(2),递归结束则排序完成 2、代码实现 2. 阅读全文
posted @ 2019-05-29 10:51 笃志弘毅 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1、算法介绍 (1)比较相邻的两个元素,前面元素比后面元素大,则交换两个元素;两个元素相等不交换(稳定); (2)一趟比较后得到最大元素,对前面未排好序的序列重复步骤(1) (3)循环排序结束或排序过程中无交换则排序完成 2、代码实现 2.1、golang 2.2、python3 阅读全文
posted @ 2019-05-29 09:15 笃志弘毅 阅读(224) 评论(0) 推荐(0) 编辑