Perlで学ぼう!文系プログラマのための、知識ゼロからのデータ構造と計算量

 Perlで学ぼう!文系プログラマのための、知識ゼロからのデータ構造と計算量

6521324f6ab5266cdcde1dd05945a27b?s=128

Shinpei Maruyama

August 21, 2015
Tweet

Transcript

  1. 32.

    SVを確保してSVの場所を代入 47  "7 47  )7  47 B

    47   47  SFG YGEEC  0x7f99d080db78
  2. 33.

    中身を表示 47  "7 47  )7  47 B

    47   47  SFG YGEEC 
  3. 34.

    中身の指し示すやつを取ってきて表示 47  "7 47  )7  47 B

    47   47  SFG YGEEC  0x7f99d080db78
  4. 38.
  5. 42.

    添え字付きアクセス      10000 + short(2byte) *

    2 番地を読みに行くよ  10000番    
  6. 52.

    ふたつめの要素作る )7  @WBMVF @OFYU@SFGVOEFG FM@ &MFNFOU SFG  )7

     @WBMVF @OFYU@SFG&MFNFOU SFG   FM@ &MFNFOU SFG  1 2
  7. 54.

    同様にみっつめの要素 )7  @WBMVF @OFYU@SFGVOEFG )7  @WBMVF @OFYU@SFG&MFNFOU SFG

      FM@ &MFNFOU SFG  )7  @WBMVF @OFYU@SFG&MFNFOU SFG   1 2 3
  8. 59.

    2を挿入 MJTU -JTU SFG )7  @WBMVF @OFYU@SFGVOEFG )7 

    @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG 
  9. 60.

    3つめの値を取得したい MJTU -JTU SFG )7  @WBMVF @OFYU@SFG &MFNFOUSFG 

    )7  @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7  @WBMVF @OFYU@SFGVOEFG
  10. 61.

    MJTU -JTU SFG )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7

     @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7  @WBMVF @OFYU@SFGVOEFG 3つめの値を取得したい
  11. 62.

    MJTU -JTU SFG )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7

     @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7  @WBMVF @OFYU@SFGVOEFG 3つめの値を取得したい
  12. 63.

    MJTU -JTU SFG )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7

     @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7  @WBMVF @OFYU@SFGVOEFG 3つめの値を取得したい
  13. 68.

    連結リストの計算量 • n個めの要素にアクセスしたい • 最初の要素へのアクセス + n - 1回辿 る必要がある

    = O(n) • リストの最初に値を挿入したい • 後ろにいくつ要素があっても、最初の要 素へのアクセス + 新しい要素を作って つなぐだけ = O(1)
  14. 76.
  15. 82.
  16. 87.

    2分木に2を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  17. 88.

    2分木に2を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  18. 89.

    2分木に2を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree
  19. 90.

    2分木に6を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  20. 91.

    2分木に6を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  21. 92.

    2分木に6を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFS/PEFSFG  )7 

    @SPPU/PEF SFG  USFF 5SFFSFG  V V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree
  22. 93.

    2分木に3を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFS/PEFSFG  )7 

    @SPPU/PEF SFG  USFF 5SFFSFG  V V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  23. 94.

    2分木に3を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFS/PEFSFG  )7 

    @SPPU/PEF SFG  USFF 5SFFSFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG  V V   tree 
  24. 95.

    2分木に3を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFS/PEFSFG  )7 

    @SPPU/PEF SFG  USFF 5SFFSFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFS/PEFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG  V V   V  tree
  25. 96.

    2分木から1を探索 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFS/PEFSFG  )7 

    @SPPU/PEF SFG  USFF 5SFFSFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFS/PEFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG  V V   V  tree
  26. 97.

    2分木から1を探索 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFS/PEFSFG  )7 

    @SPPU/PEF SFG  USFF 5SFFSFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFS/PEFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG  V V   V  tree
  27. 99.

    2分木から5を探索 )7  @WBMVF @TNBMMFSVOEFG @MBSHFS/PEFSFG  )7  @SPPU/PEF

    SFG  USFF 5SFFSFG )7  @WBMVF @TNBMMFSVOEFG @MBSHFS/PEFSFG   )7  @WBMVF @TNBMMFSVOEFG @MBSHFS/PEFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG   
  28. 102.
  29. 132.
  30. 135.

            B+木から5を探索 

      select * from table where id > 5  
  31. 136.