2010-07-23 35 views

Trả lời

17

Sử dụng thuật toán lựa chọn.

  1. Tách mảng số thành 100 phân đoạn.
  2. Mỗi bộ xử lý nên sử dụng trục chung để chia mảng hai nhóm (trái/phải)
  3. sau đó mỗi bộ xử lý nên gửi kích thước của những 2 nhóm để các nhà lãnh đạo
  4. lãnh đạo nên tính toán mà nhóm nhỏ và phát một tin nhắn để thoát khỏi một trong những nhóm đó.
  5. quay lại bước 2 cho đến khi bạn tìm ra trung bình

giải pháp này có một thời gian chạy trung bình của O (n) để làm cho nó thời gian chạy tiệm cận của O (n), mỗi bộ xử lý nên chia những con số đối với các nhóm gồm 5 yếu tố, hãy tìm trung vị của mỗi nhóm (sử dụng sắp xếp chèn) và gửi những người trung gian đó trở lại người lãnh đạo, người đứng đầu sẽ chọn trung vị của những người đó (sử dụng cùng một bản ngã) và sẽ là trục

đọc bài viết trên wiki - http://en.wikipedia.org/wiki/Selection_algorithm

+1

+1, nhưng tôi nghĩ bạn có nghĩa là để nói ["thuật toán lựa chọn"] (http://en.wikipedia.org/wiki/Selection_algorithm), không phải lựa chọn sắp xếp. – interjay

+0

đúng, tôi sẽ khắc phục điều đó ... cảm ơn! – DuduAlul

+2

@MrOhad, tôi không hiểu. Nhà lãnh đạo tính toán nhóm nào nhỏ hơn và phát đi một tin nhắn để thoát khỏi một trong những nhóm đó? Tại sao? – Alcott