Jump to content
  • entries
    33
  • comments
    0
  • views
    1,227

Bir Konum Listesini Sıralama


Doğuhan ELMA

42 views

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.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...