#include <stdio.h>
#include <stdlib.h> //system için gerekli
#include <conio.h> //getch() için gerekli
#include <time.h>
#define Boyut 10
#define Temizle system("cls")
void Sirala(int[]);
void DiziyiYaz(int []);
int main()
{
int *dizi=(int *)malloc(Boyut*sizeof(int));
char *adres=malloc(20);
int ilkDeger=0;
int sonDeger=Boyut-1;
int Aranan,araDeger,i;
srand(time(NULL));
for (i=0;i<Boyut;i++)
dizi[i]=rand()%100+1;
//for(i=0;i<Boyut;i++)
//adres[i]=&dizi[i];
Temizle;
printf("\tRastgene Atanan %d Sayi: ",Boyut);
DiziyiYaz(dizi);
Sirala(dizi); //Dizi küçükten büyüğe siralanir
printf("\n\n %d",sizeof(adres[0]));
printf("\n\tDizinin Siralanmis Hali: ");
DiziyiYaz(dizi);
printf("\n\n\tAranacak Sayiyi Giriniz: ");
scanf("%d",&Aranan);
while (ilkDeger <= sonDeger)
{
araDeger=(sonDeger+ilkDeger)/2;
if (dizi[araDeger]==Aranan) break;
else if (dizi[araDeger]>Aranan)
sonDeger=araDeger;
else ilkDeger=araDeger+1;
}
free(dizi);
if (ilkDeger>sonDeger) printf("\n\tAranan Sayi Dizi Icerisinde Yok!");
else printf("\n\n\n\n\tDizi[%d] = %d bulundu..",araDeger,Aranan);
getch();
return 0;
}
/* Dizinin Elemanlarını Küçükten Büyüğe Siralayan Fonksiyon*/
void Sirala(int dizi[])
{
int Temp,Kontrol=0,i;
while (Kontrol==0)
{
Kontrol=1;
for (i=0;i<Boyut-1;i++)
if (dizi[i]>dizi[i+1])
{
Temp=dizi[i];
dizi[i]=dizi[i+1];
dizi[i+1]=Temp;
Kontrol=0;
}
}
}
/* Gönderilen "Boyut" elemanlı dizinin elemanlarını ekrana yazdiran fonksiyon*/
void DiziyiYaz(int dizi[])
{
int i;
for (i=0;i<Boyut;i++)
printf("%3d ",dizi[i]);
}
1 Haziran 2010 Salı
Binary Search (6. Quiz)
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder