08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

temp = a[k];<br />

a[k] = a[k + 1];<br />

a[k + 1] = temp;<br />

flag = UNSORTED;<br />

}<br />

} while (flag == UNSORTED);<br />

for (i = 0; i < SIZE; ++i)<br />

printf("a[%d] = %d\n", i, a[i]);<br />

}<br />

return 0;<br />

Aşağıdaki programda bir dizinin elemanları küçükten büyüğe "araya sokma" (insertion<br />

sort) algoritmasıyla sıraya diziliyor:<br />

#include <br />

#defineSIZE 10<br />

int main()<br />

{<br />

int a[SIZE] = {2, 3, 1, 7, 9, 12, 4, 8, 19, 10};<br />

int i, k, temp;<br />

for (i = 1; i < SIZE; ++i) {<br />

temp = a[i];<br />

for (k = i; k > 0 && a[k - 1] > temp; --k)<br />

a[k] = a[k - 1];<br />

a[k] = temp;<br />

}<br />

for (i = 0; i < SIZE; ++i)<br />

printf("%d ", a[i]);<br />

}<br />

return 0;<br />

Sıralama yönünü küçükten büyüğe yapmak yerine büyükten küçüğe yapmak için içteki<br />

döngüyü aşağıdaki gibi değiştirmek yeterli olur.<br />

for (k = i; k > 0 && dizi[k - 1] < temp; --k)<br />

Aşağıdaki programda ise diziyi küçükten büyüğe sıralamak için "seçme sıralaması"<br />

(selection sort) algoritması kullanılıyor:<br />

#include <br />

#defineSIZE 10<br />

int main()<br />

{<br />

int a[SIZE] = {2, 3, 1, 7, 9, 12, 4, 8, 19, 10};<br />

int i, k, min, index;<br />

for (k = 0; k < SIZE; ++k) {<br />

min = a[k];<br />

index = k;<br />

for (i = k + 1; i < SIZE; ++i)<br />

if (a[i] < min) {<br />

209

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!