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
Posting Komentar