SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
.
    Lazy Pairing Heaps
      – PFDS 読書会 –
.

         日比野 啓


      December 15, 2012




                          .   .   .   .   .   .
Pairing Heap の復習 - ならし時間計算量




 Pairing Heap のならし時間計算量
 … heap 内のノードの数を n としたとき
    insert, merge, deleteMin … O(ln n)
    findMin … O(1)




                                         .   .   .   .   .   .
Pairing Heap の復習 - 最悪時間計算量




 最悪時間計算量
    deleteMin … O(n)
    findMin, insert, merge … O(1)




                                   .   .   .   .   .   .
Pairing Heap の復習 - 最悪時間計算量




 最悪時間計算量
    deleteMin … O(n)
    findMin, insert, merge … O(1)




                                   .   .   .   .   .   .
Pairing Heap - deleteMin の最悪コスト

  deleteMin の最悪 (O(n)) ケース
       n - 1 回の merge が起こる




                             .   .   .   .   .   .
Pairing Heap - データ構造

  通常の Pairing ヒープでは子ノードをリストで持っていた
  datatype Heap = E
                | T of Elem . T * Heap list




                                 .   .   .    .   .   .
Lazy Pairing Heap
  deleteMin の最悪ケースの再利用に対してならしコストが悪
  くならないようにする
       merge 結果を遅延サンクにキャッシュする




                         .   .   .   .   .   .
Lazy Pairing Heap
  datatype Heap = E
                | T of Elem . T * Heap * Heap susp




                                .   .   .   .   .   .
Discussion




  Discussion




               .   .   .   .   .   .

Más contenido relacionado

La actualidad más candente

Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cythonfuzzysphere
 
CuPyでAx=bを解きたかった話
CuPyでAx=bを解きたかった話CuPyでAx=bを解きたかった話
CuPyでAx=bを解きたかった話kiyoshiiriemon
 
Incanterの紹介
Incanterの紹介Incanterの紹介
Incanterの紹介mozk_
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義するblackenedgold
 
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説AtCoder Inc.
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へHiro H.
 
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT7720130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77nkt77
 
Python : for文の解説
Python : for文の解説Python : for文の解説
Python : for文の解説Seong-Hun Choe
 
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Inc.
 
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)洋史 東平
 
111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッションShohei Hido
 
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」Hiro H.
 
私を SKI に連れてって
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてってSusisu
 
120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2Takayuki Nuimura
 

La actualidad más candente (17)

Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cython
 
CuPyでAx=bを解きたかった話
CuPyでAx=bを解きたかった話CuPyでAx=bを解きたかった話
CuPyでAx=bを解きたかった話
 
Incanterの紹介
Incanterの紹介Incanterの紹介
Incanterの紹介
 
Kihon
KihonKihon
Kihon
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
 
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ
 
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT7720130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
 
Python : for文の解説
Python : for文の解説Python : for文の解説
Python : for文の解説
 
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
 
Python : Class
Python : ClassPython : Class
Python : Class
 
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
 
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
 
111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション
 
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」
 
私を SKI に連れてって
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてって
 
120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2
 

Destacado

Adding simpl GVN path into GHC
Adding simpl GVN path into GHCAdding simpl GVN path into GHC
Adding simpl GVN path into GHCKei Hibino
 
Profunctor and Arrow
Profunctor and ArrowProfunctor and Arrow
Profunctor and ArrowKei Hibino
 
Museo de antequera
Museo de antequeraMuseo de antequera
Museo de antequerapalomatq
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 

Destacado (8)

Adding simpl GVN path into GHC
Adding simpl GVN path into GHCAdding simpl GVN path into GHC
Adding simpl GVN path into GHC
 
Profunctor and Arrow
Profunctor and ArrowProfunctor and Arrow
Profunctor and Arrow
 
Html5 101
Html5 101Html5 101
Html5 101
 
Html5 101
Html5 101Html5 101
Html5 101
 
HaskellDB
HaskellDBHaskellDB
HaskellDB
 
Museo de antequera
Museo de antequeraMuseo de antequera
Museo de antequera
 
Html5 101
Html5 101Html5 101
Html5 101
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 

Último

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Último (7)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

Lazy Pairing Heap

  • 1. . Lazy Pairing Heaps – PFDS 読書会 – . 日比野 啓 December 15, 2012 . . . . . .
  • 2. Pairing Heap の復習 - ならし時間計算量 Pairing Heap のならし時間計算量 … heap 内のノードの数を n としたとき insert, merge, deleteMin … O(ln n) findMin … O(1) . . . . . .
  • 3. Pairing Heap の復習 - 最悪時間計算量 最悪時間計算量 deleteMin … O(n) findMin, insert, merge … O(1) . . . . . .
  • 4. Pairing Heap の復習 - 最悪時間計算量 最悪時間計算量 deleteMin … O(n) findMin, insert, merge … O(1) . . . . . .
  • 5. Pairing Heap - deleteMin の最悪コスト deleteMin の最悪 (O(n)) ケース n - 1 回の merge が起こる . . . . . .
  • 6. Pairing Heap - データ構造 通常の Pairing ヒープでは子ノードをリストで持っていた datatype Heap = E | T of Elem . T * Heap list . . . . . .
  • 7. Lazy Pairing Heap deleteMin の最悪ケースの再利用に対してならしコストが悪 くならないようにする merge 結果を遅延サンクにキャッシュする . . . . . .
  • 8. Lazy Pairing Heap datatype Heap = E | T of Elem . T * Heap * Heap susp . . . . . .
  • 9. Discussion Discussion . . . . . .