STRUKTUR DATA Sorting - Bubble Sort, Selection Sort Python

STRUKTUR DATA Sorting  - Bubble Sort, Selection Sort


Bubble Sort
Merupakan algoritma pengurutan sederhana yang berulang kali melewati daftar yang akan diurutkan, membandingkan setiap pasangan item yang berdekatan dan menukar mereka jika mereka berada di urutan yang salah.

   



def bubbleSort1a(listData):
    for outIler in range(len(listData)-1,-1,-1):
        for i in range(outIler):
            if listData[i] > listData[i+1]:
                listData[i],listData[i+1]=listData[i+1],listData[i]
                print(listData)

def bubbleSort1b(listData):
    for outIter in range(len(listData)-1,0,-1):
        print(listData)
        kondisi=True
        for i in range(outIter):
            if listData[i] >= listData[i+1]:
                listData[i],listData[i+1]=listData[i+1],listData[i]
                kondisi = False
        if kondisi:
            print(listData)
            break         


def bubbleSort2(listData):
    for outIter in range(len(listData)-1,0,-1):
        print(listData)
        kondisi=True
        for i in range(outIter):
            if listData[i] >= listData[i+1]:
                listData[i],listData[i+1]=listData[i+1],listData[i]
        for j in range(outIter-1,0,-1):
            if listData[j] <= listData[j-1]:
                listData[j],listData[j-1]=listData[j-1],listData[j]
                kondisi=False
        if kondisi:
            print(listData)
            break         

#main
data = [7,1,18,4,6,5,10,3,2]
print('----------  Bubble Sort 1a  ----------')
bubbleSort1a(data)
print('----------  Bubble Sort 1b  ----------')
bubbleSort1b(data)
print('----------  Bubble Sort 2  ----------')
bubbleSort2(data)




  Selection Sort
Menemukan nilai minimum dalam array/list dan memindahkannya ke posisi pertama. Langkah ini kemudian diulang untuk nilai terendah kedua, lalu yang ketiga, dan seterusnya sampai array/list diurutkan.
Atau ????

 

   

def selectionSort(listData):
    for outIter in range(len(listData)):
        print(listData)
        kondisi=True
        minIndex=outIter
        for i in range(outIter+1,len(listData)):
            if listData[i] < listData[minIndex]:
                minIndex=i
                kondisi=False
        listData[outIter],listData[minIndex]=listData[minIndex],listData[outIter]

        rightIter=(len(listData)-1)-outIter
        maxIndex=rightIter
        for j in range(rightIter-1,-1,-1):
            if listData[j] > listData[maxIndex]:
                maxIndex=j
                kondisi=False
        listData[rightIter],listData[maxIndex]=listData[maxIndex],listData[rightIter]

        if kondisi == True:
            break

data = [7,1,18,4,6,5,10,3,2]
print("SelectionSort 3b : ")
selectionSort(data)
 






Komentar

Postingan populer dari blog ini

STRUKTUR DATA - INFIX, PREFIX, POSTFIX EXPRESSIONS Python

STRUKTUR DATA Sorting - Merged Sort, Shell Sort Python