随笔分类 -  排序

摘要:图解排序算法(三)之堆排序 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种**选择排序,**它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为 阅读全文
posted @ 2022-05-27 14:11 nsfoxer 阅读(19) 评论(0) 推荐(0)
摘要:图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。本文简单温习下最基础的三类算法:选择,冒泡,插入。 先定义个交换 阅读全文
posted @ 2022-05-27 14:11 nsfoxer 阅读(33) 评论(0) 推荐(0)
摘要:图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。 阅读全文
posted @ 2022-05-27 14:10 nsfoxer 阅读(35) 评论(0) 推荐(0)
摘要:图解排序算法(五)之快速排序——三数取中法 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数 阅读全文
posted @ 2022-05-27 14:10 nsfoxer 阅读(49) 评论(0) 推荐(0)
摘要:图解排序算法(四)之归并排序 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而**治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起, 阅读全文
posted @ 2022-05-27 14:10 nsfoxer 阅读(22) 评论(0) 推荐(0)