Sıralama Algoritmaları

Insertion Sort

public static void insertion_srt(int array[]){
    for (int i = 1; i < array.lenght; i++){       int j = i;       int B = array[i];       while ((j > 0) && (array[j-1] > B)){
        array[j] = array[j-1];
        j--;
      }
      array[j] = B;
    }
  }

Selection Sort

Algoritma 1. dizi elemanının, dizinin 2. elemanından sonuncu elemanına kadar olan küme içerisindeki en küçük eleman ile yer değiştirmesiyle başlar. Bir sonraki adımda 2. eleman, 3. elemandan son elemana kadar olan küme içerisinden en küçük elemanla yer değiştirir. Bu işlemler son elemanında yerini bulmasıyla sona erer.

public void selectionSort(int[] arr) {
      int i, j, minIndex, tmp;
      int n = arr.length;
      for (i = 0; i < n - 1; i++) {
            minIndex = i;
            for (j = i + 1; j <; n; j++)
                  if (arr[j] < arr[minIndex])
                        minIndex = j;
            if (minIndex != i) {
                  tmp = arr[i];
                  arr[i] = arr[minIndex];
                  arr[minIndex] = tmp;
            }
      }
}

Bubble Sort

Sıralanacak sayılardan ilk olan alınır ve bir sonrakiyle karşılaştırılır.Eğer kendinden büyükse yer değiştirilir.İlk sıralama sonunda en büyük sayı bulunur.Her döngüden sonra bir sayı elenir ve en sonunda sıralama gerçekleşir.

public void bubbleSort(int[] arr) {
      boolean swapped = true;
      int j = 0;
      int tmp;
      while (swapped) {
            swapped = false;
            j++;
            for (int i = 0; i < arr.length - j; i++) {                   if (arr[i] > arr[i + 1]) {
                        tmp = arr[i];
                        arr[i] = arr[i + 1];
                        arr[i + 1] = tmp;
                        swapped = true;
                  }
            }
      }
}

Sıralama Algoritmaları” üzerine 3 düşünce

  1. :) şimdi aradaki farkı nasıl anlatsam bilmiyorum pseudo koda dikkatli bakarsan ve mantığı anlamaya çalışırsan aradaki farkı kendin bulacaksın:

    procedure bubbleSort( A : list of sortable items ) defined as:
    do
    swapped := false
    for each i in 0 to length(A) – 1 inclusive do:
    if A[i] > A[i+1] then
    swap( A[i], A[i+1] )
    swapped := true
    end if
    end for
    while swapped
    end procedure

    burada while döngüsü var yani kaç kere döneceği belli değil, eğer sayılar sıralı değilse değişim oluyor ve değişim olduktan sonra bir boolean bir değişken true oluyor döngü de bu değişkeni kontrol ederek hareket ediyor, eğer değişim olmuşsa tekrar sayıları tarıyor, değişim yoksa sayılar sıralanmış demektir diyor ve döngüden çıkıyor

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>