işlemcilerini kullanarak süresini maksimum bulmak için paralel algoritma


11

Biz bilgisayar ile zaman karmaşıklığında paralel bir dizi maksimum bulmak için bir algoritma ile sınıfta sunuldu .O(1)n2

Algoritma:

N uzunluğunda bir A dizisi verildiğinde:

  1. N uzunluğunda bir bayrak dizisi yapın ve bilgisayarlı sıfırlarla başlatın .n
  2. Her 2 öğeyi karşılaştırın ve bilgisayarla minimum dizine B'de 1 yazın .n2
  3. bilgisayarlı A'da 0 ile dizini bulun .n

Öğretim üyesi bize bilgisayarlarla ve zaman karmaşıklığı ile yapılabileceğini söyledi.nlognlogn

Bir sürü düşünmeden sonra nasıl yapılacağını anlayamadım. Herhangi bir fikir?

Yanıtlar:


9

İçine orijinal dizi bölün uzunluğu blokları . Her bir işlemciyi her bir bloktan sorumlu tutun ve time içindeki olağan algoritmayı kullanarak maksimum değeri bulun . Şimdi uzunluk dizisinin maksimumunu hesaplamamız gerekiyor . Elemanları eşleştirin ve dizinin boyutunu yarıya indirmek için çift maximi hesaplayın. Tüm dizinin maksimum sayısını bulmak için kez tekrarlayın .n/lognlognlognn/lognlogn

Aynı fikir , her için bilgisayarları kullanarak sabit zamanda maksimum değeri paralel olarak hesaplayabileceğinizi de gösterir . (Egzersiz yapmak.)n1+ϵϵ>0


Amaç, zamanında bir maksimum bulmaktıO(1)O(logn)
NightRa

Zaman karmaşıklığı ile çarpılan bilgisayar sayısı için alt sınırını kanıtlayın . Ω(n)
Yuval Filmus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.