Jumat, 21 Oktober 2016

Contoh pemograman algoritma devide & conquer Max dan Min



LISTING PROGRAM

#include <stdio.h>
#include <conio.h>

int a[100];
int max, min;
void sort(int[],int len);
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;
                   }
              }
int main()
{
int i,num;
printf("\n\t\t\t Maximun & Minimum \n\n");
printf("\n Masukan banyak angka: ");
scanf("%d", &num);
printf("\n Masukan angkanya : \n");
for(i=0;i<num; i++ )
    {
    scanf("%d",&a[i]);
    }
sort(a,num);
printf("\n Angka-angkaNya: ");
for(i=0;i<num; i++ )
{
    printf("\n %d",a[i]);
    printf("\n");
    }
    max=a[0];
    min=a[0];
    maxmin(0, num-1);
    printf("\nMaximum angka : %d\n", max);
    printf("Minimum angka : %d\n", min);
    getch();
    return 0;
}
void sort(int a[],int len)
{
     int c;int d;int e;
     for(c=1;d<=len-1;d++)
     {
         for(e=0;e<=len-2;e++)
         {
         if (a[e+1]<a[e+2])
         {
               c=a[e+1];
               a[e+1]=a[e+2];
               a[e+2]=c;
               }
   }
   }
   }







LOGIKA
#include <stdio.h>
#include <conio.h>

Untuk memasukan library ke dalam program.
int a[100];
int max, min;

Variabel a mempunyai range 100.
Max dan min untuk nilai maksimal dan minimal.
void sort(int[],int len);

Untuk penyortingan dan panjang variabel
void maxmin(int i,int j)

Fungsi dari maximum dan minimum

     {
     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;
                   }
              }

Fungsi maxmin yang memiliki algoritma untuk menentukan/mencari nilai maksimum dan minimum pada sejumlah angka yang telah di input.

int main()
Program utama


{
int i,num;
printf("\n\t\t\t Maximun & Minimum \n\n");
printf("\n Masukan banyak angka: ");
scanf("%d", &num);
printf("\n Masukan angkanya : \n");

Perintah untuk menampilkan tampilan pertama pada saat program pertama kali dijalankan.

for(i=0;i<num; i++ )
    {
    scanf("%d",&a[i]);
    }
sort(a,num);

Untuk menginput angka sesuai jumla yang di input, kemudian nilai maksimum dan minimum akan disimpan dengan memanggil fungsi maxmin.
printf("\n Angka-angkaNya: ");

Melakukan sorting
for(i=0;i<num; i++ )
{
    printf("\n %d",a[i]);
    printf("\n");
    }
    max=a[0];
    min=a[0];
    maxmin(0, num-1);
    printf("\nMaximum angka : %d\n", max);
    printf("Minimum angka : %d\n", min);
    getch();
    return 0;

Berfungsi untuk menyusun angka dan menampilkan hasil urutan angka yang sudah diinput. Setelah itu terdapat juga perintah untuk menampilkan nilai maksimum dan minimum dari sejumlah angka yang sudah diinput.

}
void sort(int a[],int len)

Fungsi penyortingan dan panjang variable.


{
     int c;int d;int e;
     for(c=1;d<=len-1;d++)
     {
         for(e=0;e<=len-2;e++)
         {
         if (a[e+1]<a[e+2])
         {
               c=a[e+1];
               a[e+1]=a[e+2];
               a[e+2]=c;
               }}}}

Berfungsi sebagai pengurutan tetapi tidak akan dieksekusi oleh program utama, program ini hanya dipanggil dalam waktu tertentu.





OUTPUT

Tidak ada komentar:

Posting Komentar

Comments system

Disqus Shortname