Số lượng so sánh chính xác để tính toán trung vị


25

tn1tn10V1(n)=n1V2(n)=n2+n/2

Bảng từ Knuth III: 5.3.2

Vt(n)M(n)=Vn/2(n)


Như @ MarkusBläser chỉ ra, bảng của Knuth dường như đã kết hợp các kết quả gần đây hơn từ Bill Gasarch, Wayne Kelly và Bill Pugh ( Tìm số lớn nhất của n cho i, n . SIGACT News 27 (2): 88-96, 1996 .)


2
Bài báo nổi tiếng nhất về chủ đề này, tôi nghĩ, là của Pratt và Yao (1976), người được cho là một trong những người đầu tiên đã tìm thấy một số kỹ thuật (nghịch cảnh) để chứng minh các vấn đề thấp hơn về vấn đề này. Nếu tôi tìm thấy các bài báo gần đây về chủ đề này, tôi sẽ làm theo các trích dẫn được thực hiện cho bài viết này . Bài báo gần đây nhất là của Dor và Zwick, nhưng cũng có một cuộc khảo sát năm 1996 của Paterson (mặc dù tôi không nhìn xem liệu nó có liên quan đến kết quả chính xác hay không).
Jérémie

1
Nitpicking: Trong câu cuối cùng trong câu hỏi, có lẽ bạn có nghĩa là trần thay vì sàn.
Tsuyoshi Ito

6
Jeff, tò mò tại sao bạn quan tâm đến câu trả lời chính xác.
Chandra Chekuri

5
Vi(n)

5
@ChandraChekuri: Tôi đang chơi xung quanh với các biến thể của thuật toán lựa chọn thời gian tuyến tính Blum-Floyd-Pratt-Rivest-Tarjan , như một vấn đề tiềm ẩn của thuật toán bài tập về nhà. Nếu chúng ta sử dụng thuật toán so sánh tối thiểu để tìm trung vị trong mỗi khối, thì kích thước khối nào mang lại cho chúng ta hằng số tốt nhất trong big-Oh? 9 tốt hơn 7 là tốt hơn 5; 11 tuổi thì sao?
Jeffε

Câu trả lời:


17

n=15

Giới hạn của Kenneth Oksanen để lựa chọn

Cảm ơn @ MarkusBläser đã dẫn đầu!


3

Tôi tự hỏi nếu thông tin này có thể hữu ích cho bạn. Thật không may, nó không cung cấp bất kỳ thông tin bổ sung nào cho câu hỏi của bài đăng này, mà là để trả lời bình luận của bạn nhiều hơn về mục đích này (phân tích các biến thể của QuickSelect).

v(n,t)vt(n)

vt(n)=n+min(t,nt)+l.o.t..

Kết quả này không được sử dụng thường xuyên và đặc biệt là cơ sở cho các thuật toán trong "Lấy mẫu thích ứng cho QuickSelect" của Martínez, Panario và Viola . Điểm bắt đầu của bài báo là QuickSelect median-of-ba, và sau đó để hỏi: nó có phù hợp để chọn trung bình một cách có hệ thống không, khi phần tử chúng ta tìm kiếm có thứ hạng tương đối thấp hơn n / 2 hoặc cao hơn nhiều so với n / 2 ?

Nói cách khác, giả sử bạn đang tìm kiếm phần tử thứ trong danh sách phần tử và bạn đang chọn trục của mình từ cụm các phần tử . Thay vì lấy trung vị ( ), bạn sẽ lấy trong đó . Chúng cho thấy thuật toán này có thể, cho sự lựa chọn đúng đắn của thực tế hiệu quả hơn so với biến thể trung bình của ba.knmm/2αmα=k/nm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.