
算法
qq_23936173
这个作者很懒,什么都没留下…
展开
-
python实现括号匹配总结
python实现括号匹配问题原创 2018-05-03 20:23:10 · 5926 阅读 · 0 评论 -
归并排序及“归并”思想的应用
本文讲解归并排序及“归并”思想的两个应用:小和问题,逆序对问题。归并排序提起归并排序,大家可能都会想到下图:所谓归并,是指将两个有序数列合并为一个有序数列。归并排序是利用归并的思想实现的排序方法。如上图。思路比较简单,就是对数组进行不断的分割,分割到只剩一个元素,然后,再两两合并起来。归并排序算法实现(python3):def merge_sort(arr): # 递归的对数...原创 2019-02-02 13:56:17 · 2882 阅读 · 1 评论 -
堆排序及复杂度分析
文章目录什么是堆?如何构建一个堆?代码实现修改大顶堆根节点的值,如何再次将其形成大顶堆?代码实现如何实现堆排序?代码实现时间复杂度分析 什么是堆?可以理解为 堆就是一棵完全二叉树。完全二叉树:假设一棵二叉树的深度是h,若其满足第1~(h-1)层的节点数达到最大个数,第h层的节点都连续出现在最左边,我们称其为完全二叉树。 堆又分为 大顶堆和小顶堆。大顶堆:父节点的...原创 2019-02-18 12:34:14 · 7425 阅读 · 0 评论 -
排序算法总结
文章目录排序算法总结冒泡排序算法思想:代码实现时间复杂度及稳定性插入排序算法思想代码实现时间复杂度及稳定性选择排序算法思想代码实现时间复杂度及稳定性归并排序算法思想代码实现时间复杂度及稳定性快速排序堆排序排序算法总结以数组arr = [7,6,5,8,4,5],升序排列为例:冒泡排序算法思想:对数组进行n次遍历,每次交换相邻位置上左边比右边大的数,每次找到一个最大的数。代码实现de...原创 2019-02-23 17:43:37 · 721 阅读 · 0 评论 -
荷兰国旗与快速排序
文章目录荷兰国旗问题解决荷兰国旗问题的思路代码实现经典快排经典快排的思路代码实现经典快排存在的缺陷随机快排随机快排的思路代码实现荷兰国旗问题荷兰国旗问题:给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。以arr = [3,8,9,2,5,5],num = 5为例。解决荷兰国旗问题的思路初始化小于边界le...原创 2019-02-13 21:57:07 · 1952 阅读 · 0 评论 -
栈实现队列 与 队列实现栈
文章目录队列实现栈思路代码实现栈实现队列思路代码实现队列实现栈思路假设我们有队列A和队列B,如何实现一个栈呢?也就是说,给我们两个队列,依次push 1 2 3 4,如下图,如何让弹出的顺序是 4 3 2 1呢?思路很简单,如下图,我们把队列A中的前(n-1)个元素pop,并push到队列B中,再弹出队列A中的元素。然后,交换队列A和B,继续进行上述操作,直至两个队列均为空。代...原创 2019-03-10 19:38:25 · 338 阅读 · 0 评论