Masalah tentang mengurutkan angka dengan metode bubble sort. Metode bubble sort ini dilakukan
dengan cara melakukan perbandingan data pertama dengan data setelah nya. Jika data yang di sebelah kiri lebih besar maka data tersebut akan bertukaran tempat yang angka besar berpindah kekanan.
Analisis
misal diberikan input {9,7,4,1} akan menjadi {1,4,7,9}.
Proses yang terjadi:
Tahap ke-1: 7, 9, 4, 1 :: 7, 4, 9, 1 ::7, 4, 1, 9 (ada 3 pertukaran)
Tahap ke-2: 4, 7, 1, 9 :: 4, 1, 7, 9 (ada 2 pertukaran)
Tahap ke-3: 1, 4, 7, 9 (ada 1 pertukaran -> proses selesai
Algoritma
Procedure bubble(input a[0],t,n : integer)
Deskripsi
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(a[i]>a[j])
t=a[i];
a[i]=a[j];
a[j]=t;
endif
endfor
endfor
c++
#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void output(int a[0],int t,int n){
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
cout<<"\nSesudah Di Urutkan"<<endl;
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}cout<<endl;
}
int main(int argc, char** argv) {
int n,t;
cout<<"Masukkan Batas : ";
cin>>n;
int array[n];
cout<<"Masukkan data : ";
for (int j=0;j<n;j++){
cout<<"Data Ke-"<<j+1<<" = ";
cin>>array[j];
}
cout<<endl<<endl;
cout<<"sebelum di urutkan"<<endl;
for (int j=0;j<n;j++){
cout<<array[j]<<" ";
}
output(array,t,n);
system("pause");
return 0;
}
Tidak ada komentar:
Posting Komentar