Bir Konum Listesini Sıralama
Positional List, belirli bir pozisyona erişim sağlamak için uygun bir veri yapısıdır, bu da çeşitli sıralama algoritmalarının uygulanmasını mümkün kılar. Aşağıda, bir Positional List'i sıralamanın bir yolu olan Insertion Sort algoritmasının bir uygulamasını bulacaksınız.
Insertion Sort İle Positional List Sıralama
Insertion Sort, bitişik öğeleri karşılaştırarak ve gerekirse değiştirerek çalışır. Positional List içindeki elemanlar arasında bu karşılaştırmaları yapmak oldukça kolaydır.
def insertion_sort_positional(plist): if len(plist) < 2: return marker = plist.first() while marker != plist.last(): pivot = plist.after(marker) value = pivot.element() if value > marker.element(): marker = pivot else: walk = marker while walk != plist.first() and plist.before(walk).element() > value: walk = plist.before(walk) plist.delete(pivot) plist.add_before(walk, value)
Örnek Kullanım:
plist = PositionalList() plist.add_last(30) plist.add_last(10) plist.add_last(20) print("Before sorting:", [x for x in plist]) # Before sorting: [30, 10, 20] bubble_sort_positional(plist) print("After sorting:", [x for x in plist]) # After sorting: [10, 20, 30]
Bu kod, Positional List içindeki öğeleri Insertion Sort algoritmasıyla sıralamaktadır. Sıralama işlemi sırasında, her adımda bir "işaretçi" kullanılır. İlgili öğe işaretçinin solundaysa, sol tarafın zaten sıralandığı bilinir ve öğe, sol tarafta doğru pozisyona yerleştirilir. Bu süreç, liste boyunca devam eder, böylece her adımda, işaretçinin sol tarafındaki tüm öğeler sıralanmış olur.
Insertion Sort, Positional List gibi bir veri yapısında uygulanması nispeten kolay bir sıralama algoritmasıdır ve orta büyüklükteki listelerde etkilidir.
0 Comments
Recommended Comments
There are no comments to display.