Enviar búsqueda
Cargar
Lazyselect
•
Descargar como KEY, PDF
•
1 recomendación
•
862 vistas
Tomohiro Nishimura
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 57
Descargar ahora
Recomendados
NoSQL を Ruby で実践するための n 個の方法
NoSQL を Ruby で実践するための n 個の方法
Tomohiro Nishimura
逃げ道をなくすということについて、僕の持っている知見を話します。
逃げ道をなくすということについて、僕の持っている知見を話します。
Tomohiro Nishimura
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
シュッとふりかえる Ruby 2.0 以降
シュッとふりかえる Ruby 2.0 以降
Tomohiro Nishimura
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ること
Tomohiro Nishimura
Atom ことはじめ
Atom ことはじめ
Tomohiro Nishimura
The way to the Kyoto.rb
The way to the Kyoto.rb
Tomohiro Nishimura
Kyotorb#4
Kyotorb#4
Tomohiro Nishimura
Recomendados
NoSQL を Ruby で実践するための n 個の方法
NoSQL を Ruby で実践するための n 個の方法
Tomohiro Nishimura
逃げ道をなくすということについて、僕の持っている知見を話します。
逃げ道をなくすということについて、僕の持っている知見を話します。
Tomohiro Nishimura
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
シュッとふりかえる Ruby 2.0 以降
シュッとふりかえる Ruby 2.0 以降
Tomohiro Nishimura
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ること
Tomohiro Nishimura
Atom ことはじめ
Atom ことはじめ
Tomohiro Nishimura
The way to the Kyoto.rb
The way to the Kyoto.rb
Tomohiro Nishimura
Kyotorb#4
Kyotorb#4
Tomohiro Nishimura
Kyotorb#3
Kyotorb#3
Tomohiro Nishimura
Kyotorb Meetup #2
Kyotorb Meetup #2
Tomohiro Nishimura
Kyoto.rb
Kyoto.rb
Tomohiro Nishimura
KPTのすすめ
KPTのすすめ
Tomohiro Nishimura
2010年ふりかえる
2010年ふりかえる
Tomohiro Nishimura
Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-
Tomohiro Nishimura
Boys, do LiveCoding
Boys, do LiveCoding
Tomohiro Nishimura
Vim Text Object
Vim Text Object
Tomohiro Nishimura
Introduce the LiveCoding
Introduce the LiveCoding
Tomohiro Nishimura
2009年ふりかえり
2009年ふりかえり
Tomohiro Nishimura
It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.
Tomohiro Nishimura
Introduce the Hacobu
Introduce the Hacobu
Tomohiro Nishimura
Rubyで始めるGTD
Rubyで始めるGTD
Tomohiro Nishimura
Introduce RSpec's Matchers
Introduce RSpec's Matchers
Tomohiro Nishimura
Termtter Refactoring Spa
Termtter Refactoring Spa
Tomohiro Nishimura
Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法
Tomohiro Nishimura
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会
Tomohiro Nishimura
Sinatra事始め
Sinatra事始め
Tomohiro Nishimura
今更はじめるCucumber
今更はじめるCucumber
Tomohiro Nishimura
Más contenido relacionado
Más de Tomohiro Nishimura
Kyotorb#3
Kyotorb#3
Tomohiro Nishimura
Kyotorb Meetup #2
Kyotorb Meetup #2
Tomohiro Nishimura
Kyoto.rb
Kyoto.rb
Tomohiro Nishimura
KPTのすすめ
KPTのすすめ
Tomohiro Nishimura
2010年ふりかえる
2010年ふりかえる
Tomohiro Nishimura
Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-
Tomohiro Nishimura
Boys, do LiveCoding
Boys, do LiveCoding
Tomohiro Nishimura
Vim Text Object
Vim Text Object
Tomohiro Nishimura
Introduce the LiveCoding
Introduce the LiveCoding
Tomohiro Nishimura
2009年ふりかえり
2009年ふりかえり
Tomohiro Nishimura
It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.
Tomohiro Nishimura
Introduce the Hacobu
Introduce the Hacobu
Tomohiro Nishimura
Rubyで始めるGTD
Rubyで始めるGTD
Tomohiro Nishimura
Introduce RSpec's Matchers
Introduce RSpec's Matchers
Tomohiro Nishimura
Termtter Refactoring Spa
Termtter Refactoring Spa
Tomohiro Nishimura
Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法
Tomohiro Nishimura
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会
Tomohiro Nishimura
Sinatra事始め
Sinatra事始め
Tomohiro Nishimura
今更はじめるCucumber
今更はじめるCucumber
Tomohiro Nishimura
Más de Tomohiro Nishimura
(19)
Kyotorb#3
Kyotorb#3
Kyotorb Meetup #2
Kyotorb Meetup #2
Kyoto.rb
Kyoto.rb
KPTのすすめ
KPTのすすめ
2010年ふりかえる
2010年ふりかえる
Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-
Boys, do LiveCoding
Boys, do LiveCoding
Vim Text Object
Vim Text Object
Introduce the LiveCoding
Introduce the LiveCoding
2009年ふりかえり
2009年ふりかえり
It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.
Introduce the Hacobu
Introduce the Hacobu
Rubyで始めるGTD
Rubyで始めるGTD
Introduce RSpec's Matchers
Introduce RSpec's Matchers
Termtter Refactoring Spa
Termtter Refactoring Spa
Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会
Sinatra事始め
Sinatra事始め
今更はじめるCucumber
今更はじめるCucumber
Lazyselect
1.
LAZYSELECT 09M6358
2.
n
Q p
3.
4.
3
5 2 7 1 6 4 8
5.
n=8 3
5 2 7 1 6 4 8
6.
n=8 3
5 2 7 1 6 4 8
7.
n=8 3
5 2 7 1 6 4 8
8.
n=8 3
Q. 5 A(n = 8) 2 7 1 p=5 A. 5 6 4 8
9.
QUICKSELECT : O(n)
SELECT : O(n)
10.
LAZYSELECT
11.
LAZYSELECT
O(n)
12.
1.
A n ( n < 50), A , p . A n3/4 , B .
13.
A
14.
n
15.
n
n = 500
16.
n 3/4
n = 500
17.
n 3/4
n = 500
18.
n 3/4
n = 500 n = 106
19.
B n = 106
20.
21.
n
n = 50
22.
p
23.
p p
24.
2. A
p B q=pn3/4/n=pn-1/4 . , l=max{ q- √n , 0}, h=min{ q+√n ,n3/4} ( , q √n ) ,B l L h H ( B LAZYSELECT .)
25.
B n = 106
26.
B p
q
27.
q=
pn3/4 / n
28.
q=
pn-1/4
29.
q=
pn-1/4
30.
q
31.
q
32.
-√n
+√n q
33.
-√n
+√n q L H
34.
l = max{
q - √n , 0} h = min{ q + √n , n3/4 }
35.
B
l L B h H
36.
LAZYSELECT B
l L B h H LAZYSELECT
37.
3.
A , A A[i]<H A1 A2 (QUICKSORT partition ). A1 |A1| p , A2 p-|A1| (A2 LAZYSELECT ). |A1|≧p , A1 A[i]<L A11 A12 . |A11|≧p A11 p (A11 LAZYSELECT ). , A12 p-|A11| (A12 LAZYSELECT ).
38.
A
39.
A
H
40.
A1
A2 H
41.
A1
A2 ? P
42.
A1
A2 |A1| P
43.
A2 P’ = P
- |A1|
44.
A2 P’ = P
- |A1|
45.
A1
A2 P ≦ |A1|
46.
A1
A2 L
47.
A11 A12
A2 L
48.
A11 A12
A2 ? P
49.
A1 A11 A12
A2 LAZYSELECT LAZYSELECT LAZYSELECT or or p’ = p p’ = p - |A11| p’ = p - |A1|
50.
51.
52.
n3/4 √n
53.
A11
A2 A12
54.
p A11
A2 A12
55.
O(n)
Descargar ahora