Veri Yapısı ve Algoritmalar Seçim Sıralaması
Seçim sıralaması, basit bir sıralama algoritmasıdır. Bu sıralama algoritması, listenin sol uçta sıralı bölüm ve sağ uçta sıralanmamış bölüm olmak üzere iki bölüme ayrıldığı yerinde karşılaştırma tabanlı bir algoritmadır. Başlangıçta, sıralanan kısım boştur ve sıralanmamış kısım tüm listedir.
En küçük öğe, sıralanmamış diziden seçilir ve en soldaki öğe ile değiştirilir ve bu öğe, sıralanmış dizinin bir parçası olur. Bu işlem, sıralanmamış dizi sınırını bir öğe sağa kaydırmaya devam eder.
Ortalama ve en kötü durum karmaşıklıkları Ο (n 2 ) olduğundan, bu algoritma büyük veri kümeleri için uygun değildir.n öğe sayısıdır.
Seçim Sıralaması Nasıl Çalışır?
Aşağıdaki tasvir edilen diziyi bir örnek olarak düşünün.
Sıralanan listedeki ilk konum için, tüm liste sırayla taranır. Şu anda 14'ün saklandığı ilk konum, tüm listeyi araştırıyoruz ve 10'un en düşük değer olduğunu buluyoruz.
Bu yüzden 14'ü 10 ile değiştiririz. Listedeki minimum değer olan bir yinelemeden sonra 10, sıralanmış listenin ilk konumunda görünür.
33'ün bulunduğu ikinci konum için, listenin geri kalanını doğrusal bir şekilde taramaya başlarız.
14'ün listedeki ikinci en düşük değer olduğunu ve ikinci sırada görünmesi gerektiğini görüyoruz. Bu değerleri değiştiriyoruz.
İki yinelemeden sonra en az iki değer, sıralı bir şekilde başlangıca yerleştirilir.
Aynı işlem dizideki diğer öğelere de uygulanır.
Aşağıda, tüm sıralama sürecinin resimli bir tasviri yer almaktadır -
Şimdi, seçim sıralamanın bazı programlama yönlerini öğrenelim.
Algoritma
Step 1 − Set MIN to location 0
Step 2 − Search the minimum element in the list
Step 3 − Swap with value at location MIN
Step 4 − Increment MIN to point to next element
Step 5 − Repeat until list is sorted
Sözde kod
procedure selection sort
list : array of items
n : size of list
for i = 1 to n - 1
/* set current element as minimum*/
min = i
/* check the element to be minimum */
for j = i+1 to n
if list[j] < list[min] then
min = j;
end if
end for
/* swap the minimum element with the current element*/
if indexMin != i then
swap list[min] and list[i]
end if
end for
end procedure
C programlama dilinde seçim sıralama uygulaması hakkında bilgi edinmek için lütfen buraya tıklayın .