document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <iostream>
  2. #include <conio.h>
  3. #define max 20
  4. using namespace std ;
  5. // By : Dian Nugraha -> 1112091000081
  6. void quick_sort(int darr[max], int lb, int ub)
  7. {
  8.   int a;
  9.    int atas,bawah;
  10.    int temp;
  11.  
  12.    if (lb>=ub)
  13.     return;
  14.    a=darr[lb];
  15.    //1. Tentukan Lower Bound (Batas Bawah) & Upper Bound (Batas Atas)
  16.  
  17.    atas=ub;
  18.    bawah=lb;
  19.  
  20.    while (bawah < atas) //2. Bandingkan Lower Bound (LB) dengan Upper Bound (UB)
  21.    {
  22.      while (darr[bawah] <= a) //
  23.        bawah++;
  24.       while (darr[atas]>a) //3. Jika LB>UB, Tukar (cari operasi perbandingan yang optimal/terkecil)
  25.        atas--;
  26.       if(bawah<atas)
  27.       {
  28.         temp=darr[bawah];
  29.          darr[bawah]=darr[atas];
  30.          darr[atas]=temp;
  31.       }
  32.       //4. Jika LB =< UB, maka Next Upper Bound & Lower Bound
  33.  
  34.    }
  35.    darr[lb]=darr[atas];
  36.    darr[atas]=a;
  37.  
  38.    quick_sort(darr,lb,atas-1);
  39.    quick_sort(darr,atas+1,ub);
  40. }
  41.  
  42. int main()
  43. {
  44.   int arr[max];
  45.    int i,n,lb,ub;
  46.    lb=0;
  47.    cout<<"\\tQUICK SORT\\n\\n"
  48.    cout<<"Masukkan jumlah index : ";
  49.    cin>>n;
  50.  
  51.    ub=n;
  52.    cout<<"Masukkan data: \\n\\n";
  53.    for(i=1;i<=n;i++)
  54.    {
  55.      cout<<"data ke -> "<<i<<" : "; cin>>arr[i];
  56.    }
  57.  
  58.    quick_sort(arr,lb,ub);
  59.    cout<<"\\nHasil pengurutan data: ";
  60.    for(i=0; i<n;i++)
  61.     cout<<" "<<arr[i];
  62.  
  63.    getch();
  64. }
  65. // By : Dian Nugraha -> 1112091000081
');