Program Penginputan, Pengurutan, Penampilan Data, serta Pencarian Data dengan cara Bagi Dua (Binary Search)
#include <stdio.h>
#include <conio.h>
#define maks=10
void pemasukan_data(float x[], int *pjumlah);
void pengurutan_data(float x[], int jumlah);
void penampilan_data(float x[], int jumlah);
typedef int LarikInt [Nmaks+1] ;
void BinarySearch2 (LarikInt L, int n, int x, int *idx);
main()
{ clrscr();
int jum_data, type_data, dataq [10], data1, data2, data3 ;
float data [10];
pemasukan_data(data, &jum_data);
pengurutan_data(data, jum_data);
penampilan_data(data, jum_data);
BinarySearch2 (dataq, data1, data2, &data3);
getch();
return 0;
}
void pemasukan_data(float x[], int *pjumlah)
{
int i, jum;
{printf("Jumlah Data : "); scanf("%d", &jum); fflush(stdin); }
for (i=0;i<jum;i++)
{ printf("Data ke-%d : ", i+1); scanf("%f", &x[i]); fflush(stdin);}
*pjumlah=jum;
}
void pengurutan_data(float x[], int jumlah)
{
int i, j; float smtr;
for (i=0; i<jumlah-1; i++)
for (j=i+1; j<jumlah ; j++)
if (x[i] > x[j])
{
smtr=x[i];
x[i]=x[j];
x[j]=smtr; }
}
void penampilan_data(float x[], int jumlah)
{
int i; printf("\n");
puts("Data Setelah Diurutkan : ");
for (i=0;i<jumlah;i++)
printf("%2.f\n", x[i]);
}
void BinarySearch2 (LarikInt L, int n, int x, int *idx)
{
typedef enum{true=1, false=0} boolean;
int i,j,k;
boolean ketemu;
i=1;
j=n;
ketemu=false;
while (!ketemu && i<=j)
{
k=(i+j)/2;
if (L[k]==x)
ketemu=true;
else if (L[k]>1)
i=k+1;
else
j=k-1;
}
if (ketemu)
*idx=k;
else
*idx=-1;
printf("Masukan Nilai yang akan dicari :"); scanf("%d", &data);
printf("Nilai %d ada di indeks : %d", data, data3);
}
Output :
Jumlah Data : (mis 3)
Data ke-1 : 23
Data ke-1 : 17
Data ke-1 : 76
Data Setelah Diurutkan :
17
23
76
Masukan Nilai yang akan dicari : (mis 23)
Nilai 23 ada di indeks : 2
Diposting pada : Senin, 09 April 12 - 13:06 WIB
Dalam Kategori : ALGORITMA DAN STUTUR DATA II, TUGAS ALGORITMA, STRUKTUR DATA 2
Dibaca sebanyak : 1533 Kali
Tidak ada komentar pada blog ini...
Anda harus Login terlebih dahulu untuk mengirim komentar
Facebook Feedback