Selasa, 15 Mei 2018

Merged Sort Python

Merged Sort pada Python


Merge Sort adalah algoritma Divide and Conquer. Ini membagi array input dalam dua bagian, panggilan itu sendiri untuk dua bagian dan kemudian menggabungkan dua bagian yang disortir. Fungsi Merge() digunakan untuk menggabungkan dua bagian.


Contoh Source code Merged sort :

1. Pengurutan data terkecil ke terbesar :

def MergedSort(x):
   data = x
   if len(data)>1:
       mid = len(data)//2
       kiri = data[:mid]
       kanan = data[mid:]
       #recursion
       MergedSort(kiri)
       MergedSort(kanan)
       i=0
       j=0
       k=0
       while i < len(kiri) and j < len(kanan):
           if kiri[i] > kanan[j]:
               data[k]=kiri[i]
               i=i+1
           else:
               data[k]=kanan[j]
               j=j+1
           k=k+1
       while i < len(kiri):
           data[k]=kiri[i]
           i=i+1
           k=k+1
       while j < len(kanan):
           data[k]=kanan[j]
           j=j+1
           k=k+1
   return data  
def MergedSort(A):    n = len(A)    if (n<2):       return    mid = len(A)//2    left = A[:mid]    right = A[mid:]    MergedSort(left)    MergedSort(right)    i=0    j=0    k=0    while i < len(left) and j < len(right):        if left[i] < right[j]:            A[k]=left[i]            i=i+1        else:            A[k]=right[j]            j=j+1        k=k+1     while i < len(left):        A[k]=left[i]        i=i+1        k=k+1     while j < len(right):        A[k]=right[j]        j=j+1        k=k+1 Alist= [54,26,93,17,99,77,31,44,55,20,100]MergedSort(Alist)print(Alist)

2. Pengurutan data terbesar ke terkecil :

def MergedSort(A):    n = len(A)    if (n<2):       return    mid = len(A)//2    left = A[:mid]    right = A[mid:]    MergedSort(left)    MergedSort(right)    i=0    j=0    k=0    while i < len(left) and j < len(right):        if left[i] > right[j]:            A[k]=left[i]            i=i+1        else:            A[k]=right[j]            j=j+1        k=k+1     while i < len(left):        A[k]=left[i]        i=i+1        k=k+1     while j < len(right):        A[k]=right[j]        j=j+1        k=k+1 Alist= [54,26,93,17,99,77,31,44,55,20,100]MergedSort(Alist)print(Alist)

Selamat Mencoba...

Tidak ada komentar:

Posting Komentar

Sejarah, Kegiatan, dan Dokumnetasi Angkatan Teknik Informatika 2017 (INTEGER_17)

Sejarah, Kegiatan, dan Dokumentasi Angkatan Teknik Informatika 2017 (INTEGER_17) Assalamualaikum Wr. Wb. INTEGER Information Te...