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 :
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
#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;
}
Output/hasil
compiler dari program tersebut :
Selamat mencoba, dan Semoga bermanfaat ....
Wassalamu’alaikum w.w.
Tidak ada komentar:
Posting Komentar