Pertemuan ke-8, Kasus 8.7

Quick Sort.

Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Quick Sort.

Algoritma :

procedure quick_sort(output data : larik; input L, R : integer)

Deklarasi
       i, j, p : integer
Deskripsi
       p <-- data[(L+R) div 2]
       i <-- L
      j <--R
     { mulai membuat partisi }
      while (i<=j) do
               while (data[i] < p) do i <-- i+1 endwhile
               while (data[j] > p) do j <-- j -1 endwhile
         if (i<=j) then
              tukar(data[i], data[j])
              i <-- i+1
              j <-- j-1
        endif
     endwhile
     if (L < j) then quick_sort(data,L,j) endif
     if (i < R) then quick_sort(data,i,R) endif

Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev 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 masuk_data(int A[], int n) {
     int i;
     for (i = 0; i < n; i++) {
      cout << "Data ke-%d : ",i+1;
      cin >> A[i];
     }
}
void cetak_data(const int A[], int n) {
     int i;
     for (i = 0; i < n; i++)
     cout << "%d ",A[i];
     cout << "\n";
}
void tukar (int *a, int *b){
     int temp;
     temp = *a;
     *a = *b;
     *b = temp;
}
void quick_sort(int data[], int L, int R) {
     int i, j, p;
     p = data[(L+R) / 2];
     i = L;
     j = R;
     while (i<=j) {
     while (data[i] < p) i++;
     while (data[j] > p) j--;
     if (i<=j){
      tukar(&data[i], &data[j]);
      i++;
      j--;
      }
    }
     if (L < j) quick_sort(data,L,j);
     if (i < R) quick_sort(data,i,R);
}

int main(int argc, char** argv) {
    int data[10], n;
  
    cout << "Banyak data : ";
    cin >> n;
    masuk_data(data,n);
    quick_sort(data,0,n-1);
    cetak_data(data,n);

  return 0;
}

Sekian dan Terima Kasih, Semoga Bermanfaat.

Comments

Popular posts from this blog

Program Menghitung Hambatan Seri dan Pararel

Menghitung nilai ipk mahasiswa

Contoh Class Dalam Bahasa C++ (Program dan Penjelasan)