-->

C++ : Maxmin Menggunakan Algoritma Divide & Conquer

Pada tutorial ini akan dibahas mengenai algortima divide and conquer dimana algoritma ini merupakan strategi pemecahan masalah yang besar dengan cara melakukan pembagian masalah yang besar menjadi beberapa bagian yang lebih kecil secara rekursif. Algortima ini memiliki 3 proses utama yaitu : Divide, Conquer dan Combine.

Tutorial ini menggunakan C++. Untuk memulainya, lakukan langkah-langkah berikut :

1.   Jika belum memiliki compiler c++ nya, maka harus mendownload terlebih dahulu ( disini saya menggunakan dev c++  ).
2.      Jika sudah ketikkan listing program berikut :


LISTING PROGRAM

#include<stdio.h>
#include<conio.h>
int a[100];
int max, min;
void maxmin(int i, int j){
                int max1, min1, mid;
                if (i==j){
                                max=min=a[i];
                }
                else if(i==j-1){
                                if(a[i]>a[j]){
                                max=a[i];
                                min=a[j];
                                }
                else{
                                max=a[j];
                                min=a[i];
                        }
                }
                else{
                                mid=(i+j)/2;
                                maxmin(i, mid);
                                max1=max;
                                min1=min;
                                maxmin(mid+1,j);
                                if(max<min1)
                max=max1;
                                if (min>min1)
                                min=min1;
                }
}
int main(){
                int i, num;
                printf("\n\t\t\tMaxmin Dengan Minimum\n");
                printf("Masukkan Banyak Angka : ");
                scanf("%i", &num);
                printf("\n Masukkan Angka-angkanya : ");
                for (i=0; i<num;i++){
                                scanf("%i",&a[i]);
                }
                max=a[0];
                min=a[0];
                maxmin(0, num-1);
                printf("Maximum Angka : %i\n",max);
                printf("Minimum Angka : %i\n",min);
                getch();
                return 0;
}


LOGIKA PROGRAM

§  #include <stdio.h> merupakan Library untuk input/output pada program,tanpa menyertakan code ini kita tidak bisa melakukan pengoperasian input dan output.

§  #include<conio.h> merupakan fungsi library console i/o untuk memanggil fungsi input output untuk menggunakan perintah getch.

§  int a[100];
int max, min;
Pendeklarasian variable a sebagai type integer dalam bentuk array, max dan min dengan type integer.

§  void maxmin(int i, int j){
Merupakan Main procedure atau bisa dibilang sebagai program utama berbentuk prosedur untuk mengurutkan data yang akan kita masukan (input).



§  int i, num;
Merupakan peendeklarasian variabel I dan num sebagai integer.

§  printf("Masukkan Banyak Angka : ");          
printf adalah untuk menampilkan output dengan type data string yang dideklarasikan yaitu “Masukkan Banyak Angka : “ pada saat program dijalankan.

§  scanf("%i", &num);
scanf adalah membaca input-an dari dari variabel yang diinput yaitu variabel num dengan &num. %i berfungsi untuk menentukan variabel num yg diinput bertipe data integer atau decimal.

§  for (i=0; i<num;i++){
                scanf("%i",&a[i]);
        }
Merupakan perulangan for yang mendeklarasikan nilai awal variabel i=0, nilai i lebih kecil dari num dan increment i (i++) nilai I bertambah 1. Lalu dibaca dengan fungsi scanf dari var a.

§  getch();
Merupakan syntax untuk membaca hasil langsung dari console.

§  return 0;
return 0 merupakan pengembalian statement yang sudah diolah, dengan tanpa nilai.


OUTPUT




LihatTutupKomentar