Sekolah

Perbedaan Deklarasi Coding dengan Menggunakan Algoritma Merge-Sort dengan Counting-Sort

×

Perbedaan Deklarasi Coding dengan Menggunakan Algoritma Merge-Sort dengan Counting-Sort

Sebarkan artikel ini

Algoritma sorting, seperti Merge-Sort dan Counting-Sort, merupakan teknik pemrograman penting yang digunakan dalam banyak aplikasi komputasi. Meskipun keduanya digunakan untuk mengurutkan data, cara kerja mereka dan implementasinya sangat berbeda.

Merge-Sort

Algoritma Merge-Sort, yang diperkenalkan oleh John Von Neumann pada tahun 1945, merupakan pendekatan ‘bagi dan kuasai’ untuk mengurutkan data. Algoritma ini membagi array menjadi dua bagian setengah sebanding dan kemudian menggabungkannya dalam urutan yang benar.

Berikut ini adalah bagaimana deklarasi coding menggunakan algoritma Merge-Sort biasanya akan tampak:

def mergeSort(arr):    if len(arr) > 1:        mid = len(arr) // 2        L = arr[:mid]        R = arr[mid:]        mergeSort(L)        mergeSort(R)        i = j = k = 0        while i < len(L) and j < len(R):            if L[i] < R[j]:                arr[k] = L[i]                i += 1            else:                arr[k] = R[j]                j += 1            k += 1        while i < len(L):            arr[k] = L[i]            i += 1            k += 1        while j < len(R):            arr[k] = R[j]            j += 1            k += 1

Counting-Sort

Di sisi lain, algoritma Counting-Sort, yang diciptakan oleh Harold H. Seward pada tahun 1954, berfungsi dengan menghitung frekuensi kemunculan elemen khusus dalam rangkaian. Setelah dihitung, rangkaian dihasilkan dengan mengikutsertakan elemen berdasarkan penghitungan tersebut.

Contoh deklarasi coding dengan menggunakan algoritma Counting-Sort dapat dilihat sebagai berikut:

def countingSort(arr):    size = max(arr) + 1    count = [0] * size    for number in arr:        count[number] += 1    i = 0    for number in range(size):        while count[number] > 0:            arr[i] = number            i += 1            count[number] -= 1

Masing-masing algoritma memiliki keunikan tersendiri dalam hal kerumitan waktu dan konsumsi memori. Secara umum, Merge-Sort memiliki kompleksitas waktu O(n log n), sementara Counting-Sort memiliki kompleksitas waktu O(n). Namun, Counting-Sort memerlukan lebih banyak ruang memori, membuatnya kurang efisien untuk rangkaian data yang lebih besar atau rentang angka yang lebih besar.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *