Sıralama ve Arama Algoritmaları

 Bir sıralama algoritmasının verimliliğinin değerlendirilmesi için iki kriter esas alınır. Bunlardan biri zaman verimliliği, diğeri hafıza verimliliğidir. Bir algoritmanın hızlı çalışabilmesi için yüksek bellek kullanımı gereklidir. Aynı şekilde düşük bellek kullanan bir algoritma da daha uzun sürede çalışacağı için bu iki koşulu aynı anda sağlayan algoritmalar diğerlerine oranla başarılı sayılırlar.

Aşağıda bazı sıralama algoritmaları verilmiştir.

Selection Sort - Seçerek Sıralama

Bubble Sort - Kabarcık Sıralama

Insertion Sort - Eklemeli Sıralama

Merge Sort - Birleştirmeli Sıralama

Quick Sort - Hızlı Sıralama

Heap Sort- Yığın Sıralama

Selection Sort

Selection Sort, performans bakımından diğer sıralama algoritmalarına göre daha zayıftır. O(n²) zamanda çalışır ve bellek kullanımında ek olarak O(1) yer tutar. Eleman sayısının az olduğu dizilerde kullanılabilir.

Dizinin ilk elemanının en küçük eleman olduğunu varsayar ve tek tek diğer elemanlarla karşılaştırır. Eğer karşılaştırdığı eleman daha küçükse onu en küçük olarak alır. En küçük elemanı ilk yere atar ve diğer elemanlar için de aynı işlemi tekrarlar. 

Kodu:

package com.company;

public class Main {

public static int array[]={2,1,3,7,5};
public static void main(String args[]) {
for(int i=0;i<array.length;i++){
int minIndex=i;
for(int j=i+1;j<array.length;j++){
if(array[j]<array[minIndex]){
minIndex=j;
}
}
int min=array[minIndex];
array[minIndex]=array[i];
array[i]=min;
}
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}

Insertion Sort

2.elemandan başlayarak tüm elemanları kendinden önceki elemanlar ile kıyaslar daha büyük eleman varsa onun yerine koyar ve diğer elemanları bir artırır. O(n²) zamanda çalışır en iyi durumda ise O(n)'de çalışır ve bellek kullanımında ek olarak O(1) yer tutar. 

2 4 1 3 5 8 7

1'de sorun var 1'i 2'nin yerine alır sonrakileri 1 kaydırır.

1 2 4 3 5 8 7

3'de sorun var 3'ü 4'ün yerine alır sonrakileri 1 kaydırır.

1 2 3 4 5 8 7

7'de sorun var 7'yi 8'in yerine alır. Son eleman dizinin en büyük elemanı olduğu için bu noktada sonlanır.

1 2 3 4 5 7 8


Yorumlar