Algoritma paralel untuk menemukan waktu

11

Kami disajikan di kelas dengan algoritma untuk menemukan maksimum dalam array secara paralel dalam kompleksitas waktu dengan n 2 komputer.O(1)n2

Algoritma itu adalah:

Diberikan array A dengan panjang n:

  1. Buat array flag B dengan panjang n dan inisialisasi dengan nol dengan komputer.n
  2. Bandingkan setiap 2 elemen dan tulis 1 dalam B pada indeks minimum dengan komputer.n2
  3. temukan indeks dengan 0 di A dengan komputer.n

Dosen menggoda kita itu bisa dilakukan dengan komputer dan dengankompleksitaslognwaktu.nlognlogn

Setelah banyak berpikir saya tidak tahu bagaimana melakukannya. Ada ide?

Gil
sumber

Jawaban:

9

n/lognlognlognn/lognlogn

n1+ϵϵ>0

Yuval Filmus
sumber
O(1)O(logn)
Ω(n)