算法
谢宇寒
这个作者很懒,什么都没留下…
展开
-
二叉树的深度和广度优先遍历
前中后序遍历指的是对根结点的前中后。三种算法都有两种解决方案:1.递归法2.迭代法前序遍历根结点——> 左节点——>右节点ABCDEFGHK /** * L144 二叉树的前序遍历 * * 迭代法 * * @param root * @return */ public List<In...原创 2020-01-21 16:36:29 · 255 阅读 · 0 评论 -
解决算法问题的小心得
数组,栈,队列首先思考暴力法该如何解决问题,大概率情况下暴力法的时间复杂度为O(N^2 or 3)。其次思考其复杂的原因,比如每次都在循环数组等,可能有的优化方案如:提前计算好当前元素左右两边需要的元素,或者使用双指针去做排除。使用栈,根据特定条件进行入栈,出栈操作,动态计算所需要的结果链表解决链表的通用方法有递归和迭代,迭代的思路更接近与暴力法,通过指针转换计算,相对来说比较容易思...原创 2020-02-25 16:09:04 · 153 阅读 · 0 评论 -
排序算法:冒泡排序,快速排序
排序算法冒泡排序思想:把相邻的元素两两比较,当一个元素大于右侧相邻元素时,交换它们的位置!每一个循环将较大数置于右侧。时间复杂度就是O(nlogn)。优化点:每次循环后可剔除右侧一个元素就行比较若一个循环下来,没有任何元素交换,说明数组有序,可直接退出若循环在某个index之后,就没有进行数据交换,说明该index后的数组有序,不进入循环。鸡尾酒排序对冒泡排序的升级,冒泡排序始...原创 2020-02-18 14:21:16 · 267 阅读 · 0 评论