排序算法
文章平均质量分 80
Eartha1995
这个作者很懒,什么都没留下…
展开
-
图解排序算法(二)之希尔排序
作者: dreamcatcher-cx出处: http://www.cnblogs.com/chengxiao/ 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。...转载 2018-08-14 20:36:18 · 188 阅读 · 0 评论 -
图解排序算法(一)之3种简单排序(选择,冒泡,直接插入)
作者: dreamcatcher-cx出处: http://www.cnblogs.com/chengxiao/ 排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。本文简单温习下最基础的三类算法:选择,冒泡,插入。 先定义个交换数组元素的函数,供排序时调...转载 2018-08-14 18:53:38 · 214 阅读 · 0 评论 -
图解排序算法(三)之堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结...转载 2018-08-15 14:55:54 · 198 阅读 · 0 评论 -
图解排序算法(四)之归并排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结...转载 2018-08-15 16:49:38 · 178 阅读 · 0 评论 -
图解排序算法(五)之快速排序
选取一个枢纽,使它左边的值都比它小,右边的值比它大。(假定选数组第一个元素值) int Partition(int* array, int low, int high){ int pivotkey; pivotkey = array[low]; while(low < high) { while(low < high &...转载 2018-08-15 17:30:33 · 465 阅读 · 0 评论