Medians and Order Statistics

Phần này có 1 vài vấn đề cần quan tâm như:
- Median
- i-th order statistic
 - Selection problem
 -------
1, i-th order statistic
i-th order statistic là phần tử có thứ tự i trong dãy đã xếp hay còn gọi là phần tử nhỏ thứ i trong dãy.
Median( theo môn MAS có thể dịch là trung vị) là phần tử halfway.
Nếu n lẻ, median nằm ở giữa.
Nếu n chẵn, sẽ có median uppermedian lower:

Phát biểu bài toán:
Input: Cho một dãy n phần tử phân biệt và số i (1<=i <= n)
Output: Đưa ra phần tử lớn hơn chính xác i-1 phần tử khác trong dãy. (Nói cách khác đưa ra phần tử nhỏ thứ i trong dãy).

Xét bài toàn tìm minimum và maximum trong một dãy chưa được sort, ta mất (n-1) phép so sánh cho từng loại. Vậy ta phải mất 2n-2 phép so sánh để tìm cả max và min. Liệu có cách nào hiệu quả hơn?
Ta có thể chỉ mất 3*|n/2| phép so sánh bằng cách:

- Chia thành các cặp phần tử
- So sánh từng cặp với nhau
- Với mỗi cặp lại so sánh với min, max hiện tại
=> Chỉ mất 3 phép so sánh cho mỗi cặp.

Mở rộng: Show that the second smallest of n-elements can be found with n+lgn-2 comparisons in the worst case???
Tìm số nhỏ thứ 2 trong dãy chỉ với n+lgn-2 phép so sánh?

2, Selection problem



Quay lại vấn đề tìm số nhỏ thứ i trong dãy, tư duy của một người bình thường sẽ là sort dãy đã cho rồi đưa ra vị trí cần tìm. Mất O(n log n) cho trung bình một lần sort. Liệu có cách nào chỉ tốn O(n) không?

Chung tư tưởng với quicksort, một thuật toán đã được áp dụng.
Tương tự như quicksort, nhưng ta chỉ phân hoạch và đi về một phía của bên được chọn, thuật toán này được chứng mình thời gian trung bình là O(n), nhưng trong trường hợp xấu nhất thì vẫn là O(n^2).

Khi đó, thuật toán median-of-median ra đời để khắc phục tường hợp xấu nhất này.


- Người ta chia thành các nhóm 5 phần tử
- Việc sắp xếp 1 nhóm 5 phần tử được coi như O(1)
- Chọn 5 vì:
      + Số lẻ dễ xác định median
      + 3 thì quá nhỏ => không tối ưu
      + 7, 9, ... quá lớn để coi việc sort như O(1)
-  chọn ra median-of-median m

Tiếp tục phân hoạch và tiếp cho đến khi gặp phần tử cần tìm.
Bài toán được chứng minh dù trường hợp xấu nhất vẫn là O(n).


Comments

Popular posts from this blog

Reflection: Scope Variables

Những lợi ích của việc dùng email edu cho developer

Reflection: Pointer