Aşağıda, sözde kod şeklinde verilen algoritma bir dizinin elemanları arasında birbirine en yakın iki elemanın uzaklığını vermektedir. (Uzaklık, elemanların sayı değerleri farkının mutlak değeri şeklinde kabul edilmiştir.)
Algoritma MinUzaklik (A[0 … n − 1]) // Girdi: pozitif tamsayılardan oluşan A[0 … n − 1] dizisi // Çıktı: Dizinin en yakın iki elemanı arasındaki uzaklık değeri dmin ← ∞ for i ← 0 to n − 1 do for j ← 0 to n − 1 do if i ≠ j and |A[ i ] − A[ j ]| < dmin dmin ← |A[ i ] − A[ j ]| return dmin
Bu algoritmayı daha etkin hale getirmek için gerekli gördüğünüz tüm geliştirmeleri yaparak sözde kodu yeniden yazınız
Çözüm için şöyle bir kod buldum:
ALGORITHM Mindistance(a[0...n-1]) Input: Array[0..n-1] of numbers Output: Minimum Distance between two of its elements (given X and Y) dmin -> ∞ for i = 0 to n-1 do if(A == X || A == Y) prev = i break for i to n-1 do if (A == X || A == Y) if ( A[prev] != A && (i - prev) < dmin ) dmin = i - prev prev = i else prev = i return dmin Here Given element are X and Y . Time Complexity: O(n)
bunun sözde kodunu nasıl yazabilirz ?
E tüm algoritmanın fonksiyonlarını ne yapılması gerektiğini vermişsin altta zaten.
Dile göre uyarla bitti bu kadar fonksiyon,yapı,degisken adlarını bile kendin vermişsin zaten :D