Bu yazımda, Python “Seçerek Sıralama” (Selection Sorting) algoritmasını konu alacağım. Seçerek Sıralama verilen listeyi küçükten büyüğe sıralamak için kullanacağız.
Selection Sorting özetle listedeki en küçük elemanı ilk sıraya, kalanlar arasından bir sonraki en küçük olanı da ikinci sıraya yerleştirir. Bu işlem son elemana kadar devam eder.
Bunu bir örnekle gösterelim;
Yapmak istediğimiz bir sonraki şey, ilk sıra için bir aday bulmaktır, bu aday öğe listedeki en küçük öğe olacaktır.
Sonra bir sonraki öğeye geçiyoruz ve listenin ikinci sırası için ikinci en küçük öğei buluyoruz.
Sonra bir sonraki elemana geçiyoruz, bu işlemi listedeki en son elemana kadar tekrarlamaya devam edeceğiz ve sonunda sıralı bir dizi listesine sahip olacağız.
- Bu işlemi kelimeler ile de yapabilirsiniz.
Selection Sorting Uygulama
İlk olarak, bir fonksiyon oluşturuyoruz. Daha sonrası için 2 döngüye ihtiyacımız olacak, dış döngü her bir elemanı birer birer artıracak ve sıralandıktan sonra onları yok sayacak ve iç döngü elemanları dış döngü ile karşılaştıracaktır.
def selection_sort(mylist): for i in range(len(mylist)): for j in range(i+1,len(mylist)): if mylist[i]>mylist[j]: mylist[i],mylist[j] = mylist[j],mylist[i] return mylist
Şimdi liste elemanlarını tanımlayalım.
if __name__ == '__main__': mylist = [77,64,95,24,65,21,43] print(selection_sort(mylist))
Şimdi hepsini tek bir kodda birleştirelim.
def selection_sort(mylist): for i in range(len(mylist)): for j in range(i+1,len(mylist)): if mylist[i]>mylist[j]: mylist[i],mylist[j] = mylist[j],mylist[i] return mylist if __name__ == '__main__': mylist = [77,64,95,24,65,21,43] print(selection_sort(mylist))
Çıktı:
[21, 24, 43, 64, 65, 77, 95]