zoukankan      html  css  js  c++  java
  • 那些基础算法的 数学不等式 @快排分划 @kmp覆盖函数

     

    这里做个说明: 那个覆盖函数第二个分支还不了接:

     

    正文:

     

     

    procedure QSort(L,U)

    if L >« U then

    /* at most one element, do nothing */

    else

    /* partition array around a given

    value, which is eventually

    placed in its correct position P

    */

    QSort(L, P-1)

    QSort(P+1, U)

     

     

    procedure QSort(L,U)

    if L < U then

    Swap(X[L], X[RandInt(L,U)])

    T := X[L]

    M := L

    for I := L+1 to U do

    /* Invariant: X[L+1..M] < T and  X[M+1..I-1] >= T */

    if X[I] < T then

    M := M+1

    Swap(X[M], X[I])

    Swap(X[L], X[M])

    /* X[L..M-1] < X[M] <= X[M+1..U] */

    QSort(L, M-1)

    QSort(M+1, U)

     

    再次注明:其实第一版本 珠儿 是没有 那个混合版本排序的

     

    计算这个overlay函数的方法可以采用递推,可以想象如果对于pattern的前j个字符,如果覆盖函数值为k

    a0a1...ak-1ak=

    aj-kaj-k+1...aj-1aj

     

     

    则对于pattern的前j+1序列字符,则有如下可能

     

    ⑴     pattern[k+1]==pattern[j+1] 此时overlay(j+1)=k+1=overlay(j)+1

    66

    这是最幸运的情形

     

    ⑵     pattern[k+1]≠pattern[j+1]

    此时只能在pattern前k+1个子符组所的子串中找到相应的overlay函数,

    h=overlay(k),

    如果此时pattern[h+1]==pattern[j+1],则overlay(j+1)=h+1否则重复(2)过程.

    66

    这里就是利用 自我覆盖函数 overlay数组的时候

     

    书上的代码 还有一个分支:详细如下 简化代码

     

    if ( target[target_index] ==pattern[pattern_index] )

    //luky one

    {

    ++target_index;

    ++pattern_index;    

    }

     

    else if( pattern_index ==0){

    ++target_index; //?? 66分析,这说明刚才pattern_index 开始,或者被打到老家了   

    }

    else{

    pattern_index=overlay_value[pattern_index -1] +1;

    }

  • 相关阅读:
    Automatic overvoltage protection
    IDA Pro Disassembler 6.8.15.413 (Windows, Linux, Mac)
    J-Link GDB Server Command
    emSecure Use Digital Signatures to protect your products
    画时序图工具TimingDesigner 9.2 安装指导
    增益 Gain 分贝 dB
    How determine the RC time constant in PWM DAC low-pass filter?
    DAC Essentials
    Voltage Level-Shifter Output Waveform
    线性稳压器的基本类型
  • 原文地址:https://www.cnblogs.com/titer1/p/2429370.html
Copyright © 2011-2022 走看看