Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

Avatar for Shinpei Maruyama

Shinpei Maruyama

August 21, 2015
Tweet

More Decks by Shinpei Maruyama

Other Decks in Programming

Transcript

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

    47   47  SFG YGEEC  0x7f99d080db78
  2. 中身を表示 47  "7 47  )7  47 B

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

    47   47  SFG YGEEC  0x7f99d080db78
  4. 添え字付きアクセス      10000 + short(2byte) *

    2 番地を読みに行くよ  10000番    
  5. ふたつめの要素作る )7  @WBMVF @OFYU@SFGVOEFG FM@ &MFNFOU SFG  )7

     @WBMVF @OFYU@SFG&MFNFOU SFG   FM@ &MFNFOU SFG  1 2
  6. 同様にみっつめの要素 )7  @WBMVF @OFYU@SFGVOEFG )7  @WBMVF @OFYU@SFG&MFNFOU SFG

      FM@ &MFNFOU SFG  )7  @WBMVF @OFYU@SFG&MFNFOU SFG   1 2 3
  7. 2を挿入 MJTU -JTU SFG )7  @WBMVF @OFYU@SFGVOEFG )7 

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

    )7  @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7  @WBMVF @OFYU@SFGVOEFG
  9. MJTU -JTU SFG )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7

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

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

     @pSTU@FMFNFOU &MFNFOUSFG  )7  @WBMVF @OFYU@SFG &MFNFOUSFG  )7  @WBMVF @OFYU@SFGVOEFG 3つめの値を取得したい
  12. 連結リストの計算量 • n個めの要素にアクセスしたい • 最初の要素へのアクセス + n - 1回辿 る必要がある

    = O(n) • リストの最初に値を挿入したい • 後ろにいくつ要素があっても、最初の要 素へのアクセス + 新しい要素を作って つなぐだけ = O(1)
  13. 2分木に2を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  14. 2分木に2を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  15. 2分木に2を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree
  16. 2分木に6を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  17. 2分木に6を追加 )7  @WBMVF @TNBMMFS/PEFSFG  @MBSHFSVOEFG )7  @SPPU/PEF

    SFG  USFF 5SFFSFG  V  )7  @WBMVF @TNBMMFSVOEFG @MBSHFSVOEFG tree 
  18. 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
  19. 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 
  20. 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 
  21. 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
  22. 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
  23. 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
  24. 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   
  25.         B+木から5を探索 

      select * from table where id > 5