
算法
芥末味鸭肠
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法之冒泡排序
励志成为程序员的小白又来啦! 这次要分享的是算法中的几种常用排序。 首先这次我们要分享的是最经典的冒泡排序… 冒泡排序: 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或...原创 2019-07-25 20:45:46 · 162 阅读 · 0 评论 -
数据结构与算法之归并排序
算法三连!!! 这次我要分享的是归并排序 归并排序的时间复杂度为:O(nlog2n),并且是一种稳定的排序算法 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 老样子接下来要分享的便是我写...原创 2019-07-25 21:00:57 · 155 阅读 · 0 评论 -
数据结构与算法之快速排序
这次我要分享的是算法中的另一种排序:快速排序 快速排序可以说是排序当中大部分情况下效率最高的排序算法。 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行...原创 2019-07-25 20:51:45 · 203 阅读 · 0 评论 -
数据结构与算法之插入排序
今天要分享的是前两天写的排序的后几个首先是插入排序: 插入排序的稳定性是稳定的,时间复杂度与冒泡排序一样:快的话是O(n),慢的话是O(n^2) 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序 插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第...原创 2019-07-27 14:56:04 · 175 阅读 · 0 评论 -
数据结构与算法之选择排序
接下来要说的便是选择排序 工作原理:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 选择排序的时间复杂度是O(n^2),是一种不稳定的算法 算法实现: 1、假设确定最后一个数据为最大值 2、从头开始遍历这串数据,如果找...原创 2019-07-27 15:01:03 · 143 阅读 · 0 评论 -
数据结构与算法之堆排序
这是我最近几天写排序的最后一个算法排序了 我觉得这个堆排序和归并排序可以说是这几个算法中写起来最困难的代码了。 堆排序:是指利用堆这种数据结构所设计的一种排序算法。 因为堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点,所以建堆就和建树一样,必须建好堆再进行排序。 堆排序的时间复杂度为:O(nlog2n),是一种不稳定的排序算法 代码思路: 首...原创 2019-07-27 15:12:07 · 183 阅读 · 0 评论