C çalışma soruları – 53 (partition algoritması)

Bir diziyi bir koşulu sağlayan ve sağlamayan öğeler olarak ikiye ayıran partition algoritmasını türden bağımsız olarak kodlayınız.

İşlevin birinci parametresi vpa, sıralanacak dizinin adresi
İşlevin ikinci parametresi size, sıralanacak dizinin boyutu
İşlevin üçüncü parametresi width, sıralanacak dizinin öğelerinin sizeof değeri
İşlevin dördüncü parametresi fptest dizinin bir öğesinin verilen koşulu sağlayıp sağlamadığını sınayan (predicate) işlevin adresi (callback).

İşlev fptest işlevinin true değer döndürdüğü öğeleri dizinin başına konumlandırmalı.

İşlevin geri dönüş değeri dizide verilen koşulu sağlamayan ilk öğenin adresi olmalı.

İşlev diziye ikiye ayırma işlemini başka bir dizi kullanmadan O(n) karmaşıklığında bir algoritma ile gerçekleştirmeli. Yazdığınız işlevi aşağıdaki kodla test edebilirsiniz:

 

Share

Necati Ergin

C ve Sistem Programcıları Derneğinde eğitmen olarak çalışıyor.

Bunlar da ilginizi çekebilir

Kod Eklemek İçin Okuyun