Sabtu, Maret 12, 2011

BUBBLE SORT

setelah kemaren saya bahas soal selection sort, hari ini saya mau bahas tentang bubble sort. Bubble sort disebut juga dengan metode Penukaran (Exchange Sort), yaitu metoda yang
mendasarkan pada penukaran elemen untuk mencapai keadaan urut yang diinginkan.
Algoritma Metode gelembung :
• langkah 0 : Baca vector yang akan diurutkan (dalam program utama)
• langkah 1 : Kerjakan langkah 2 untuk i = 1 sampai N-1
• langkah 2 : Kerjakan langkah 3 untuk j = 1 sampai N- i
• langkah 3 : Tes apakah A[j] > A[j +1] ? Jika ya, tukarkan nilai kedua elemen ini
• langkah 4 : Selesai

berikut adalah contoh program yg saya buat. .

program buble;

uses Crt;
type ArrInt = array [1..100] of integer;

var     data : arrInt;
        i, n : integer; pil : integer;


Procedure TukarData(var a,b : integer);
var c : integer;
Begin
c:=a;
a:=b;
b:=c;
end;


Procedure bubblesort_asc(var data:arrInt; N:word);
Var i,j : word;
Begin
For i:= 1 to N-1 do
For j:= 1 to N-i do
If data[j] > data[j+1] then
Tukardata (data[j], data[j+1]);
end;

Procedure bubblesort_desc(var data:arrInt; N:word);
Var i,j : word;
Begin
For i:= 1 to N-1 do
For j:= 1 to N-i do
If data[j] < data[j+1] then
Tukardata (data[j], data[j+1]);
end;


begin
clrscr;
writeln('====BUBBLE SORT====');
writeln('1.Masukan Data');
writeln('2.Sort ascending');
writeln('3.Sort Descending');
writeln('4.keluar');
while pil <> 4 do begin
    write('masukan pilihan menu 1/2/3/4 '); readln(pil);
    case pil of
    1  : begin
         write('masukan jumlah data : '); readln(n);
         for i:=1 to N do
         begin
         write('data ke ',i, ': '); readln (data[i]);
         end;

         writeln;
         end;
    2  : begin
         writeln('pengurutaaann, , , ,');
         writeln('secara ascending : ');
         Bubblesort_asc(data, n);
         for i:=1 to n do
         writeln(data[i]);
         writeln;
         end;
    3  : begin
         writeln('pengurutaaann, , , ,');
         writeln('secara descending : ');
         bubblesort_desc(data, n);
         for i:=1 to n do
         writeln(data[i]);
         writeln;
         end;

    end;
end;
readln;

end.
 sayangnya running programnya kelupaan, ketinggal di laptop, hohohohoho, ,
run sendiri yak :p

0 comments:

Posting Komentar

silahkan berkomentarrrrr