BİLGİ SAYAMIYORUM beta

C ile Bubble Sort algoritması nasıl yazılır, bir sayı listesi üstünde uygulanarak nasıl sıralama yapılır?

0

Sıraya dizme algoritmaları programlama dilleri için fazlasıyla öğreticidir, hız olarak bazen çok farketseler de her yeni dilde birkaç tanesini öğrenerek işe başlamanız bence baya yardımcı olacaktır. Zira o algoritmanın nasıl çalıştığına alıştıktan sonra başka dilde yazmak da çok zor olmayacaktır. Bu sebeple bugün Bubble Sort algoritmasını C dilinde göstermeye karar verdim. 

Bubble Sort: Bir listenin ilk iki öğesinden son iki öğesine kadar giden bir pivot yardımıyla her ikiliyi hangisi daha büyükse onu sağa koy şeklinde giden sıralama yapan bir algoritmadır. Son ikiliye gelindiğinde eğer sağdaki öğe yani son öğe daha büyükse listeyi baştan dolaşır ancak bu sefer son öğeye uğramaz. Bu şekilde her öğe solundakinden büyük olana kadar liste tekrar tekrar turlanır, ama her seferinde 1 öğe daha kısalmış bir liste turlanır.

#include <stdio.h>
#define MAX 10

void main()
{
     int liste[MAX];
     int i, k, toplam, eleman;

     printf("Kaç sayılı bir liste olacak? \n");
     scanf("%d", &toplam);
     printf("Sayıları tek tek girin. \n");

     for (i = 0; i < toplam; i++){
          scanf("%d", &liste[i]);
     }

     printf("Verdiğiniz Sayılar: \n");

     for (i = 0; i < toplam; i++){
          printf("%d\n", liste[i]);
     }

     for (i = 0; i < toplam; i++){
          for (k = 0; k < (toplam - i - 1); k++){
               if (liste[k] > liste[k + 1]){
                    eleman = liste[k];
                    liste[k] = liste[k + 1];
                    liste[k + 1] = eleman;
               }
          }
     }
     printf("Sıralı Liste:\n");

     for (i = 0; i < toplam; i++){
          printf("%d\n", liste[i]);
     }
}

C kullandığımız için standart io kütüphanesini çağırıyoruz ve listeye maksimum bir değer veriyoruz. Sonra kullanıcıdan listenin büyüklüğünü ve listedeki elemanları istiyoruz. Listeyi verilen sıra ile oluşturduğumuz için aynı sıra ile ikinci for döngüsü ile kullanıcıya gösteriyoruz. Üçüncü for döngüsü ise asıl Bubble Sort un yapıldığı bölüm; tüm öğeleri dolaşıyor, içindeki for döngüsü ise her tur sonunda sondaki öğenin atılmasıyla oluşan yeni liste için. "eleman" ise yer değiştirme sırasında geçici olarak kullandığımız değişken, soldaki öğe sağdakinden büyük ise onu elemana koyuyoruz sağdakini sola koyuyoruz ardından elemandaki öğeyi sağa koyuyoruz. (Bkz: Kaygısızlar Eleman)

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER