算法三 morris算法

Posted 馥钰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法三 morris算法相关的知识,希望对你有一定的参考价值。

本篇文章根据左程云视频教程整理而来

https://www.bilibili.com/video/BV11v411G7xR?p=4

一、奇数在奇数位置上,偶数在偶数位置上

一个数字数组,把奇数都放在奇数的位置,或者把偶数都放在偶数的位置的算法题!

两个指针变量a、b,a、b步长都为2,即a永远指向偶数位置,b永远指向奇数位置,每次判断n-1位置的数,若为偶数与a位置的数交换位置,a移动到下一个偶数位置a=a+2,否则与b交换位置,b移动到下一个奇数位置b=b+2

array[n-1] = 1,为奇数,与b位置的数交换

b = b + 2

array[n-1] = 6,为偶数,与a位置的数交换, a = a + 2

二、morris算法  时间复杂度O(n), 空间复杂度O(1)

实例morris序  第一次访问,更改mostRight.right = cur

第二次访问,更改mostRight.right = null

完整morris序

morris算法

morris算法

第一次访问打印,二叉树先序遍历

第二次访问打印,二叉树中序遍历

morris中序遍历二叉树

morris先序遍历二叉树

morris后续遍历二叉树

morris后序遍历二叉树

打印逆序打印左树右边界(单链表反转再反转)

反转单链表

morris判断一棵树是二叉树:中序遍历是升序的

 morris算法求二叉树的最小高度

1)递归算法求二叉树的最小高度

2)morris算法求二叉树最小高度

morris算法的应用场景

 

以上是关于算法三 morris算法的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的Morris遍历算法

二叉树遍历高级算法之Morris---莫里斯算法

Knuth-Morris-Pratt 算法中的 DFA 构造

预备知识:Morris二叉树遍历算法

二叉树的遍历——Morris

除了 Knuth-Morris-Pratt、Rabin-Karp 等,还都有哪些可用的字符串匹配算法?