Programlama Ve Algoritmalar Deneme Sınavı Sorusu #746253

Aşağıda baloncuk sıralaması algoritması bir diziyi artan biçimde sıralamaktadır.

1 void baloncuk_siralamasi(int dizi[], int
2 boyut {
3  int i, j, gecici;

4  for (i = 0; i < (boyut - 1); i++)

5    {

6       for (j = 0; j < boyut - i - 1; j++){

7            if (dizi[j] > dizi[j + 1]) {

8            gecici = dizi[j];         

9             dizi[j] = dizi[j + 1];

10          dizi[j+1] = gecici;

11           }

12            printf(“\nAdim %d.%d: “, i + 1, j + 1);

13            dizi_yazdir(dizi, boyut);

14        }

15    }

16 }

Bu algoritmada neyi değiştirirsek dizi azalan şekilde sıralanır?


Satır void baloncuk_siralamasi int boyut, int dizi) olarak değiştirilmeli

4. Satır for (i = boyut-1; i > 0, i--) olarak değiştirilmeli

7. Satır if (dizi[j] < dizi[j + 1]) { olarak değiştirilmeli

9. Satır dizi[j+1] = dizi[j]; olarak değiştirilmeli

10. Satır dizi[j] = geçici; olarak değiştirilmeli


Yanıt Açıklaması:

Algoritma incelendiğinde sıralamanın en önemli noktasının dizi elemanlarının karşılaştırılması olduğu görülür. Bu

karşılaştırma da 7 satırda yapılmaktadır. Dolayısıyla iki eleman karşılaştırılırken > yerine < kullanıldığında azalan sıralama ortaya çıkar. 

Yorumlar
  • 0 Yorum