bilgisayar mühendisliği yüksek lisans bilim sınavı

Örnek 05 / 05

Soru: Bir dizinin sıralı olup olmadığını $O(n)$ karmaşıklıkta kontrol eden bir algoritma yazmak istiyorsunuz. Hangi algoritmayı kullanırsınız?
A) Kabarcık Sıralaması (Bubble Sort)
B) Seçmeli Sıralama (Selection Sort)
C) Doğrusal Arama (Linear Search)
D) Yığın Sıralaması (Heap Sort)

Çözüm: Bir dizinin sıralı olup olmadığını $O(n)$ karmaşıklıkta kontrol etmek için doğrusal arama (linear search) kullanılabilir. Diziyi baştan sona tarayarak her elemanın bir sonraki elemandan küçük veya eşit olup olmadığını kontrol ederiz. Eğer herhangi bir noktada bu koşul sağlanmazsa, dizi sıralı değildir. Diğer sıralama algoritmaları $O(n^2)$ veya $O(n log n)$ karmaşıklığa sahiptir. Doğru cevap C seçeneğidir.

1 2 3 4 5