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 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 |
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