SORU
21 EKİM 2010, PERŞEMBE


Soru: üç diziler ve O (*N N)

Biz varsayalımüçuzunluğu dizileriNyazın rasgele sayılar long içeren. Sonra bir numara verilirM(aynı türden) ve misyonumuz üç sayı seçmekBir,BveCher diziden bir (diğer bir deyişleBirgerekirilk diziden, toplanırBgelen ikinci veCüçüncü) toplamıC = A B M.

Soru:üç sayı seç ve zaman karmaşıklığı ile sonuna kadarO(N2)?


Örnek:

Diziler

1) 6 5 8 3 9 2
2) 1 9 0 4 6 4
3) 7 8 1 5 4 3

VeMverildi19. O zaman bizim seçim olacaktır8ilk gelen,4ikinci ve7üçüncü.

CEVAP
21 EKİM 2010, PERŞEMBE


Bu O(1) Uzay ve O(N . yapılabilir ^sup>2) zaman.

İlk sağlar basit bir sorunu çözmek:
İki dizi verilen A B bunların toplamı 6 ** verilen sayıya eşit olan her bir öğe seçin.

O aldığı her iki dizi(NlogN) tür.
i A j Bsonuna işaret dizinin başlangıcına işaret eden işaretçiler i j al.
Toplamı A[i] B[j] K ile karşılaştırın

  • bulduk A[i] B[j] == K çifti A[i] B[j]
  • eğer A[i] B[j] < K, gerekirse toplam artış, artış i.
  • eğer A[i] B[j] > K, gerekirse toplam azalma, azaltma j.

Sıralama sonra çifti bulmak için bu işlem O(N) alır.

Şimdi asıl sorun atalım. Üçüncü bir dizi şimdi C çağrı var.

Yani algoritma ..

foreach element x in C
  find a pair A[i], B[j] from A and B such that A[i]   B[j] = K - x
end for

Dış döngü(N) işlemi, tüm algoritma O hale yaptığımız her çalışma için N kat ve(N çalıştırır2).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006