Selasa, 03 Januari 2012

Contoh Program menggunakan Algoritma Devide & Conquer


Divide : Membagi masalah menjadi beberapa upa-masalah yang memiliki
kemiripan dengan masalah semula namun berukuran lebih kecil ( idealnya
berukuran hampir sama ).
Conquer : Memecahkan ( menyelesaikan ) masing-masing upa-masalah ( secara
rekursif ). untuk penerapannya akan diberikan sebuah contoh algoritma devide and conquer pada program maksimum dan minimum.

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<max1)
max=max1;
if(min>min1)
min=min1;
}
}



Tampilan Output :


Tidak ada komentar:

Posting Komentar