排序算法
打开黑盒
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序算法之堆排序
堆排序是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 堆排序的思路: 1、将原始数据按照完全二叉树的形式排列 2、按照堆积的性质,使子节点的键值总是小于它的父节点;即从下到上,从右到左,将所有非叶子节点的值与其叶子节点的值作比较,将较大值放在父节点 3、排列完成后,就是一个有序的堆,然后...原创 2019-07-27 15:50:44 · 190 阅读 · 0 评论 -
排序算法之快速排序
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 核心思想是,通过一个基准值,可以是第一个值,最后一个值,中间值,将基准值左侧的值都比他小,基准值右侧的值都比他大,按...原创 2019-07-22 10:16:58 · 277 阅读 · 0 评论 -
排序算法之选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 def selectionsort(data): # 首先记录数组长度 l...原创 2019-07-23 09:16:14 · 115 阅读 · 0 评论 -
排序算法之插入排序
插入排序 就是将未排序区的第一个数字,插入到已排序区对应的位置 def insertion_sort(data): length = len(data) # 假定原始数据中,第一个数字是排序好的,所以直接从data[1]开始 for i in range(1, length): # 记录未排序第一个数字 num = data[i] ...原创 2019-07-23 09:46:49 · 110 阅读 · 0 评论 -
排序算法之归并排序
将两个已经排序好的数组按照顺序排序 def mergesort(data): length = len(data) # 如果数组长度为1,则认为是有序数列 if length <= 1: return(data) num = int(length/2) # 左右侧都是通过归并排序,排序好的数列 left = mergesort(...原创 2019-07-23 10:24:27 · 147 阅读 · 0 评论
分享