Pengertian Bubble Sort Lengkap Dengan Programnya

Pengurutan merupakan proses dasar yang ada dalam algoritma dan stuktur data. Algoritma Bubble Sort adalah pengurutan dengan cara pertukaran data dengan data disebelahnya secara terus menerus sampai dalam satu iterasi tertentu tidak ada lagi perubahan. Algoritma Bubble Sort ini merupakan proses pengurutan yang secara berangsur-angsur berpindah ke posisi yang tepat.

Di bawah ini merupakan gambaran dari algoritma Bubble Sort dengan array “1,3,7,6,5”.

Proses pertama
(1, 3, 7, 6, 5) menjadi (1, 3, 7, 6, 5)
(1, 3, 7, 6, 5) menjadi (1, 3, 7, 6, 5)
(1, 3, 7, 6, 5) menjadi (1, 3, 6, 7, 5)
(1, 3, 6, 7, 5) menjadi (1, 3, 6, 5, 7)

Proses kedua
(1, 3, 6, 5, 7) menjadi (1, 3, 6, 5, 7)
(1, 3, 6, 5, 7) menjadi (1, 3, 6, 5, 7)
(1, 3, 6, 5, 7) menjadi (1, 3, 5, 6, 7)
(1, 3, 5, 6, 7) menjadi (1, 3, 5, 6, 7)

Algoritma Bubble Sort ini mempunyai kelebihan dan kekurangan, untuk kelebihannya metode ini merupakan metode paling sederhana untuk mengurutkan data. Selain sederhana, algoritma Bubble Sort mudah dipahami. Sementara itu, kekurangannya terletak pada efisiensi. Bubble Sort ini merupakan metode pengurutan yang tidak efisien karena ketika mengurutkan data yang sangat besar akan sangat lambat prosesnya. Selain itu, jumlah pengulangan akan tetap sama jumlahnya meskipun data sudah cukup terurut.

Program Bubble Sort pada Java

Program 1

public class Program
{
static void bubbleSort(int[ ] lst){
boolean swapped;
int space = lst.length;
//a do-while loop to prevent futher itration after the list is sorted.
do{
swapped=false;
for(int i=0;i<space-1;i++){
if(lst[i+1]<lst[i]){
int first=lst[i];
lst[i]=lst[i+1];
lst[i+1]=first;
swapped = true;
}
}
//displays list after every sort
System.out.print("==> ");
for(int i=0; i<space;i++){
System.out.print(lst[i]+" ");
}
System.out.print("\n");
}while(swapped==true);

//displays the fully bubbleSorted list.
System.out.print("\n\nFinally: ");
for(int each:lst){
System.out.print(each+" ");
}
}
public static void main(String[] args) {
int[] nums ={3,4,1,6,0,2,8};
bubbleSort(nums);
}
}

Hasil :

Program 2

import java.util.Arrays;
import java.util.Random;

public class Program2 {

public static void main(String[] args) {
int[] list = new int[10];

// Fill array with numbers
for (int i = 0; i < list.length; i++) {
Random random = new Random();
list[i] = random.nextInt((20 - 1) + 1) + 1;
}

System.out.println("Original: \n" + Arrays.toString(list).replace("[", "").replace("]", "").replace(",", "") + "\n");

for (int j = 0; j < list.length; j++) {
for (int i = 0; i < list.length; i = i + 1) { if (i != list.length - 1) { if (list[i] > list[i + 1]) {
int temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
}
System.out.println("==> " + Arrays.toString(list).replace("[", "").replace("]", "").replace(",", ""));
}
System.out.println("\nSorted: \n" + Arrays.toString(list).replace("[", "").replace("]", "").replace(",", ""));
}
}

Hasil :

Program Bubble Sort pada C++

Program 1

#include <iostream>
#include <cstdlib>

using namespace std;

void bubble_sort(int arr[], int size);
void swap(int& i, int& j);
void present_array(int arr[], int size);

int main()
{
int list[7] = {8, 6, 7, 5, 3, 0, 9};

int list_size = 7;

cout << "List Pre-Swap: ";

present_array(list, list_size);

bubble_sort(list, list_size);

cout << "List Post-Swap: ";

present_array(list, list_size);

return 0;
}

void bubble_sort(int arr[], int size)
{
int i;
int j;

// First "for" loop selects each element.
for (i = 0; i < size; i++)
{
for (j = i + 1; j < size; j++) { if (arr[i] > arr[j])
{
swap(arr[i], arr[j]);
}
}
}
// Second "for" loop swaps while the selected element is greater than its neighbor.
return;
}

void swap(int& i, int& j)
{
int temp;
temp = i;
i = j;
j = temp;

return;
}

void present_array(int arr[], int size)
{
int i;

for (i = 0; i < size; i++)
{
cout << arr[i] << " ";
}

cout << endl;
return;
}

Program 2

#include <iostream>
using namespace std;

void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}

void bubbleSort(int arr[], int n) {
bool swapped;
for (int i = 0; i < n-1; i++) {
swapped = false;
for (int j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) {
swap(&arr[j], &arr[j+1]);
swapped = true;
}
}
if (swapped == false)
break;
}
}

void printArray(int arr[], int size) {
for (int i =0; i < size; i++)
cout << arr[i] << " ";
}

int main() {
int arr[] = {5, 2, 42, 6, 1, 3, 2};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printArray(arr, n);

return 0;
}

Program Bubble Sort pada C# (C Sharp)

Program 1

using System;

namespace SoloLearn {

class Program {
static void bubbleSort(int[] arr) {
bool swapped;
for(int i = 0; i < arr.Length - 1; i++) {
swapped = false;
for(int j = 0; j < arr.Length - i - 1; j++) { if(arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
if(swapped == false)
break;
}
}
static void printArray(int[] arr) {
for(int i = 0; i < arr.Length; i++) {
Console.Write(arr[i] + " ");
}
}
static void Main(string[] args) {
int [] arr = {5, 2, 42, 6, 1, 3, 2};
E(arr);
printArray(arr);
}
}
}

Program 2

using System;

namespace SoloLearn {
    
class Program {
    static void bubbleSort(int[] arr) {
        bool swapped;
        for(int i = 0; i < arr.Length - 1; i++) {
            swapped = false;
            for(int j = 0; j < arr.Length - i - 1; j++) { if(arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    swapped = true;
                }
            }
            if(swapped == false)
                break;
        }
    }
    static void printArray(int[] arr) {
        for(int i = 0; i < arr.Length; i++) {
            Console.Write(arr[i] + " ");
        }
    }
    static void Main(string[] args) {
        int [] arr =  {5, 2, 42, 6, 1, 3, 2};
        E(arr);
        printArray(arr);
    }
  }
}

Program Bubble Sort pada Python

import random

nums=[random.randint(0,20) for i in range(6)]

print("List To Be Sorted -\n{}\n".format(nums))

run=True 
while run:
    good=True    
    for i in range(len(nums)-1):
        if nums[i] > nums[i+1]:
            x=nums[i+1]
            y=nums[i]
            nums[i]=x
            nums[i+1]=y
            good=False
            print(nums)       
    if good == False:
        continue
    else:
        run=False

print("\nSorted List -\n{}".format(nums))

Hasil :

Program Bubble Sort pada Ruby

def bubbleSort(arr)
    swapped = true
    for i in 0 ... (arr.length - 1)
        swapped = false
        for j in 0 ... (arr.length - i - 1)
            if arr[j] > arr[j + 1]
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                swapped = true
            end
        end
        break if swapped == false
    end
end

nums = [3, 2, 1, 5, 21, 8, 6, 9, 4, 7]
bubbleSort(nums)
p nums

Demikianlah postingan tentang Bubble Sort, semoga bisa bermanfaat buat kita semua

Ahmad Saleh Bancin

Berbagilah apa saja yang bisa kamu berikan kepada orang lain, baik itu Cinta yang kamu milik. Berbagi cinta bukan berarti Playboy........ Instagram @ahmadsalehbancin

Tinggalkan Balasan

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: