Ekleme Sıralama Algoritmasına Giriş

Ekleme Sıralama Algoritmasına Giriş

Ekleme Sıralaması, sıralanmış bir alt listeyi kullanarak ve tüm liste sıralanana kadar sıralanmamış listeden ona sürekli bir değer ekleyerek çalışan bir tekniktir.





Algoritma, sıralanmış alt liste olarak ilk liste öğesiyle başlar. Daha sonra bir sonraki sayıyı birinciyle karşılaştırır. Daha büyükse, ilk dizine eklenir. Aksi takdirde, dizininde bırakılır.





Üçüncü değer daha sonra diğer ikisi ile karşılaştırılır ve ardından doğru dizine eklenir. Bu işlem tüm liste sıralanana kadar devam eder.





Ekleme Sıralamasına Daha Yakından Bakış

Yukarıdaki açıklama size mantıklı gelmemiş olabilir. Bir örnek çok daha iyi anlamanıza yardımcı olacaktır.

Diyelim ki bir listeniz var: [39, 6, 2, 51, 30, 42, 7].



Algoritma, 39'u sıralanmış alt listenin ilk değeri olarak tanımlar. Değerlendirme daha sonra ikinci pozisyona geçer.

İlgili: Dinamik Programlama: Örnekler, Genel Sorunlar ve Çözümler





6 daha sonra 39 ile karşılaştırılır. 6, 39'dan küçük olduğundan, birinci konuma 6 ve ikinci konuma 39 eklenir. Yeni liste sırası, ilk geçişten sonra şimdi:

[6, 39, 2, 51, 30, 42, 7]





Değerlendirme şimdi üçüncü konuma geçer. 2, son iki sayı ile karşılaştırılır ve ardından doğru konuma eklenir. Yeni liste sırası şimdi ikinci geçişten sonradır:

[2, 6, 39, 51, 30, 42, 7]

Üçüncü geçiş için liste sırası şöyledir:

[2, 6, 39, 51, 30, 42, 7]

İşlem, tüm liste sıralanana kadar tekrarlanır.

Bu işlemleri özetleyen aşağıdaki şemaya bakın:

algoritma analizi

Ekleme Sıralamanın zaman karmaşıklığı O(n2), tıpkı kabarcık sıralama . En kötü senaryodaki karşılaştırma sayısı, 1'den (n-1)'e kadar olan tüm tam sayıların toplamıdır ve ikinci dereceden bir toplam verir.

Kod Uygulaması

Aşağıdaki Python ve Java kodu, Ekleme Sıralama yöntemini nasıl uygulayabileceğinizi gösterir.

Python:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

Java:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

Pseudocode ile Daha İyi Kodlama

Yukarıdaki kod örnekleri, bu algoritmayı başka dillerde yazmak için başvurabileceğiniz herhangi bir sözde kod olmadan verilmiştir. Çoğu programcı (yazar dahil), bir programın nasıl çalıştığı hakkında 'fısıltılar' söylendikten sonra klavyelerine koşmayı sever.

Program mantığı daha karmaşık hale geldikçe bu yaklaşım maalesef hatalara açıktır. Sözde kod kullanmayı öğrenerek programlama oyununuzun seviyesini yükseltmeye ne dersiniz?

Paylaş Paylaş Cıvıldamak E-posta Pseudocode Nedir ve Sizi Nasıl Daha İyi Bir Geliştirici Yapar?

Programlamayı öğrenmekte zorlanıyor musunuz? Sözde kodu öğrenerek kodun üstesinden gelin. Ancak sözde kod nedir ve gerçekten yardımcı olabilir mi?

Sonrakini Oku
İlgili konular
  • Programlama
  • Java
  • piton
  • Kodlama Eğitimleri
Yazar hakkında Jerome Davidson(22 Makale Yayımlandı)

Jerome, MakeUseOf'ta Personel Yazarıdır. Programlama ve Linux ile ilgili makaleleri kapsar. Aynı zamanda bir kripto meraklısı ve kripto endüstrisini her zaman takip ediyor.

indirmeden veya kaydolmadan çevrimiçi ücretsiz korku filmleri izleyin
Jerome Davidson'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın