![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
ZhouPeng_UPC
这个作者很懒,什么都没留下…
展开
-
快速排序
快速排序,首先使用两个标示,指向数组第一个位置low和最后一个位置high,将第一个数用一个变量存储。 1、比较high指向的数8和第一个数5的大小8>5,high向左移动,high减1, 9>5, high继续减1, 2<5,将2放到low的位置,low加1,low指向7,7>5,将7放到high指向的位置上。 2、循环1的步骤,知道low=high,此时,将5放置到low或high的位置上,如第二张图所示,5左边的数都小于5, 5右边的数都大于5。 3、递归调用,便可实现排序原创 2021-01-19 22:47:21 · 193 阅读 · 0 评论 -
堆排序
堆排序需要对二叉树有了解 堆排序的堆是一个大根堆的完全二叉树,小根堆是最小的数在堆顶,大根堆是最大的数在堆顶。 二叉树的存储,二叉树是存储在一个列表上的,他的父节点和左孩子节点与右孩子节点的位置关系如下图所示。 对于大根堆二叉树的排序,首先将堆顶的数放到最后,然后将最后面的数3放到堆顶,然后判断3是否大于8和7,小于,比较8和7 的大小,8>7,将8放到堆顶,3放到8的位置;然后比较3和6和5的大小,3小于6和5, 6>5, 将6放到3的位置,3放到6的位置;然后比较3和2和4的大小,4和3原创 2021-01-19 22:20:05 · 251 阅读 · 0 评论 -
归并排序
归并排序分分解和归并两个步骤。分解就是将一组数一级级分解到单个数,归并就是将一组左右都是有序但是合起来无序的数排序。 一、先说归并 上图是一组左右两边都有序,但是合起来无序的数组,对这样的数组进行排序就叫归并。 1、首先确定两个位置标示,即为两个箭头,第一个为low,第二个为high,在排序开始前分别指向左右有序数组的第一个位置,还有一个中间位置mid,这里定义为‘9’的位置。归并函数需要输入(list,low,mid,high)几个参数,list为数组 2、然后分别比较low和high指向位置的数的大小原创 2021-01-19 21:00:03 · 207 阅读 · 0 评论