Senin, 16 Mei 2016

sorting (bubble sort)

Assalamu"alaikum wr. wb

Pada kesempatan kali ini kelompok kami akan membahas tentang sorting, ada 3 jenis sorting yang akan kami jelaskan. Saya sendiri akan membahas tentang Bubble Sort. Sementara selection sort dan insertion sort akan dibahas oleh temen saya. Langsung saja mari kita bahas.

Kelompok 15

Selection Sort --> Edi Siswanto (1500018018)
Insertion Sort --> Lalu Sabrian Ganata (1500018048)

Sorting dengan metode Bubble Sort


Memahami permasalahan

mengurutkan data acak menggunakan metode bubble sort
metodenya jika nilai sebelah kanan lebih kecil dari nilai disebelah kiri, maka tukar pisisi keduanya.
misal: 
6 7 5 --> (6 , 7) tak perlu di tukar karena 6<7.
6 7 5 --> tukar(7 --> 5) sudah di akhir mulai dari depan lagi 
6 5 7 --> tukar(6 -->5)
5 6 7 --> jika sudah tidak ada yg bisa ditukar (data sudah urut) maka selesai
5 6 7 --> selesai


Algoritma
Procedure Bubble_Sort (input/output x : larik, input n : byte)
Deklarasi
larik = array [1..100] of integeri, a : bytek : larik, bantu : integer
Deskripsi
for i <-- 1 to n-1 dofor j <-- i+1 to n doif x[i] > x[j] thentukar(x[i], x[j])endif edfor endfor
flowchart




C++ Program
#include <iostream>
using namespace std;

void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-" << i+1 << " : ";
cin >> A[i];
}
}

void cetak_data( int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout << A[i] << " ";
cout << "\n";
}

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

void buble_sort (int x[], int n)
{ int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j])
tukar(&x[i], &x[j]);
}

main() {
cout << "Banyak data : ";
cin >> n;
baca_data(nilai,n);
cout<<endl;
cout<<"data awal"<<endl;
cetak_data(nilai,n);
buble_sort(nilai,n);
cout<<"data stelah diurutkan"<<endl;
cetak_data(nilai,n);
}

0 komentar:

Posting Komentar