Saturday, 9 May 2015

mengurutkan data array dengan C++

nah ane kemaren dapat pr dari dosen ane cara mengurutkan nilai yang diacak menjadi ter urut dari yang kecil kebesar dan juga memecah nya menjadi 2 dari yang kiri dan kanan nah sebenar nya ane masih pusing gimana cara ngurutin data yang kiri dengan yang kanan
yang ane share ini masih menggunakan cara brute force,yang anak IT bilang itu cara bodoh nya hehehe....


#include <iostream>
#include<iomanip>

using namespace std;

int main(int argc, char** argv) {
 int kiri[100],kanan[100],i,kidal1[100],kidal2[100],n,j,b[100],tmp;
 cout<<"masukan banyak data = ";cin>>n;
 
 for(i=1;i<=n;i++){
  cout<<"masukan nilai kiri yang ke"<<i<<" = ";cin>>b[i];
  }
  cout<<"\n"<<setw(4)<<"kiri"<<setw(5)<<"= ";
   for(i=1;i<=(n/2);i++){
    kiri[i]=b[i];
    cout<<kiri[i]<<" ";
  }
  cout<<"\n"<<setw(5)<<"kanan"<<setw(4)<<"= ";
   for(i=(n/2)+1;i<=n;i++){
    kanan[i]=b[i];
    cout<<kanan[i]<<" ";
  }
  //proses urutan yang sebelah kiri
  for(i=0;i<=n/2;i++){
   for(j=i+1;j<=n/2;j++){
    if(b[i]>b[j]){
     tmp=b[i];
     b[i]=b[j];
     b[j]=tmp;
    }
   // kiri[i]=b[i];
   }  
  }
  //proses urutan yang sebelah kanan
  for(i=(n/2)+1;i<=n;i++){
   for(j=i+1;j<=n;j++){
    if(b[i]>b[j]){
     tmp=b[i];
     b[i]=b[j];
     b[j]=tmp;
    }
   // kanan[i]=b[i];
   }  
  }
  //menampilkan urutan yang kiri
  cout<<"\n"<<setw(4)<<"kiri"<<setw(5)<<"= ";
  for(i=1;i<=n/2;i++){
   //cout<<kiri[i];
   cout<<b[i]<<" ";
  }
  //menampilkan urutan yang kanan
  cout<<"\n"<<setw(4)<<"kanan"<<setw(4)<<"= ";
  for(i=(n/2)+1;i<=n;i++){
   // cout<<kanan[i];
   cout<<b[i]<<" ";
  }
  //proses urutan keseluruhan
  for(i=1;i<=n;i++){
   for(j=i+1;j<=n;j++){
    if(b[i]>b[j]){
     tmp=b[i];
     b[i]=b[j];
     b[j]=tmp;
    }
   // kanan[i]=b[i];
   }  
  }
  //menampilkan urutan keseluruhan
  cout<<"\n"<<setw(4)<<"semua"<<setw(4)<<"= ";
  for(i=1;i<=n;i++){
   // cout<<kanan[i];
   cout<<b[i]<<" ";
  }

 return 0;
}

hasil jadi nya ntar seperti ini
masukan banyak data = 8
masukan nilai kiri yang ke1 = 9
masukan nilai kiri yang ke2 = 2
masukan nilai kiri yang ke3 = 4
masukan nilai kiri yang ke4 = 3
masukan nilai kiri yang ke5 = 5
masukan nilai kiri yang ke6 = 7
masukan nilai kiri yang ke7 = 6
masukan nilai kiri yang ke8 = 8

kiri   = 9 2 4 3
kanan  = 5 7 6 8
kiri   = 2 3 4 9
kanan  = 5 6 7 8
semua  = 2 3 4 5 6 7 8 9
--------------------------------
Process exited with return value 0
Press any key to continue . . .

0 comments:

Post a Comment