随笔分类 -  排序算法

摘要:堆排序 堆排序:基于优先队列的思想,时间复杂度为O(N logN )。 堆分为大顶堆和小顶堆,大顶堆是每个父节点的值都大于等于每个子节点的值,而小顶堆恰恰相反,每一个父节点的值都小于等于子节点的值。 首先是根据已知的数据构建一个大顶堆,给定的数组序列:a={16,7,3,20,17,8},构建过程如 阅读全文
posted @ 2016-06-01 20:38 best.lei 阅读(345) 评论(0) 推荐(0) 编辑
摘要:希尔排序 希尔排序:也叫作缩减增量排序,它通过比较相距一定间隔的元素来工作,各趟比较所用的距离随着算法的进行而缩小,直到只比较相邻元素的最后一趟排序为止。 希尔排序使用一个序列h1,h2,...,ht,叫做增量排序,在使用增量ht的一趟排序之后,对于每一个i我们都有a[i] ≤ a[i + ht], 阅读全文
posted @ 2016-05-31 12:02 best.lei 阅读(195) 评论(0) 推荐(0) 编辑
摘要:插入排序 插入排序:最简单的排序算法之一,由N-1趟排序组成。对于p=1到N-1趟,插入排序保证从位置0到位置p上的元素为已排序状态。如下表所示: 如上表表达了插入排序的一般策略。当第p趟时,将位置p上的元素向左移动,直到它在前面的元素之间找到正确的位置,然后将该元素插入该位置。代码如下: 插入排序 阅读全文
posted @ 2016-05-31 11:25 best.lei 阅读(191) 评论(0) 推荐(0) 编辑