![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 70
举起海豚
这个作者很懒,什么都没留下…
展开
-
学习笔记(一) 排序算法--堆排序
思路: 1.待排序n个元素,看成一个完全二叉树,从倒数第一个具有子树的节点(n/2-1)开始,从右到左从下到上,保证每个子树的父节点都比左右子树的值大,一路交换上去最后保证根节点是最大值,将根节点与最后一个元素n交换;这样就得到了最后一个元素为该数组的最大值; 2.除去最后一个元素,将(n-1)个元素重复上述操作,直到元素个数为1个void adjustHeap(int a...原创 2018-08-01 22:25:19 · 202 阅读 · 0 评论 -
学习笔记(二) 排序算法--快速排序
思想从带排序序列中找一个基准点,用两个指针,一个从右边开始移动,找到比基准点小的数,一个从左边开始移动,找到比基准点大的数,交换这两个数,右边指针和左边指针继续移动,直到两个指针相遇,将基准点与相遇的位置交换,这样就得到了一个基准数左边的数一定小于基准数,右边的数一定大于基准数;继续递排序当前基准数左边的数列和右边的数列,直到排序完成。图解代码void quickSort(...原创 2018-08-02 11:36:58 · 120 阅读 · 0 评论 -
学习笔记(三)排序算法--鸡尾酒排序
所谓鸡尾酒排序,其实就是冒泡排序的优化版。。。原创 2018-08-02 14:30:08 · 134 阅读 · 0 评论 -
学习笔记(四)排序算法--归并排序
思路个人感觉这个应该是所有排序算法中比较难理解的一个了,虽然之前已经会了,但是今天再重温的时候还是花了一点时间去看懂它的思想。 归并归并,基于分治法,其实就是先递归,一路取中点切数组大小,直到剩下一个递归停下;返回和上一层的另一个合并,形成一个有序数列,然后再上一层和另一个有序数列合并,一直返回边排序边合并直到完成。合并时采用一个辅助数组来记录两个合并数组的大小顺序,然后再写会数组的相同位置...原创 2018-08-02 16:07:32 · 187 阅读 · 0 评论