Sobes.tech
Junior — Middle

Bir dizi sıralama algoritmasının zaman karmaşıklığını nasıl belirlenir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir diziyi sıralama algoritmasının zaman karmaşıklığı, algoritmanın giriş verilerinin boyutuna bağlı olarak yaptığı işlem sayısı ile belirlenir (genellikle n ile gösterilir — dizideki öğe sayısı).

Zaman karmaşıklığını belirlemek için:

  1. En kötü, ortalama ve en iyi durumlarda temel işlemlerin (örneğin, karşılaştırmalar ve öğe takasları) kaç kez gerçekleştirildiğini analiz edin.
  2. Bu işlem sayısını n fonksiyonu olarak ifade edin.

Örneğin, kabarcık sıralama için, iç içe döngülerde öğe çiftleri karşılaştırılır, bu yaklaşık n² işlem sağlar, bu nedenle zaman karmaşıklığı O(n²) olur.

Örnek: Bir diziyi kabarcık sıralama ile sıralama ve karmaşıklık tahmini:

public void bubbleSort(int[] arr) {
    int n = arr.length;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

Burada, iki iç içe döngü n üzerinde, bu nedenle zaman karmaşıklığı O(n²) olur.

Daha verimli algoritmalar için, örneğin hızlı sıralama, ortalama zaman karmaşıklığı O(n log n) dir.