#include <stdio.h>
#include <stdlib.h>
typedef struct {
int *data;
int length;
int capacity;
} array;
void intialize_array(array* list,int initial_size){
list
->data
=(int*)malloc(initial_size
*sizeof(int));list->length=0;
list->capacity=initial_size;
}
void resize(array* list){
list->capacity*=2;
list
->data
=(int*)realloc(list
->data
,list
->capacity
*sizeof(int));}
void add_elements(array* list,int value){
if(list->length==list->capacity){
resize(list);
}
list->data[list->length++]=value;
}
int binary(array* list,int target){
int low,high;
low=0;
high=(list->length-1);
int mid;
while(low<=high){
mid=(low+high)/2;
if(list->data[mid]==target){
return mid;
}
else if(list->data[mid]<target){
low=mid+1;
}
else {
high=mid-1;
}
}
return -1;
}
void printArrayList(array* list) {
printf("ArrayList contents: "); for (int i = 0; i < list->length; i++) {
}
}
int main (){
array list;
int size;
int value;
intialize_array(&list,size);
printf("enter %d elements: ",size
); for(int i=0;i<size;i++){
add_elements(&list,value);
}
printArrayList(&list);
int target;
int index=binary(&list,target);
if(index!=-1){
printf("found in position %d",index
+1);
}
else{
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IHsKICAgIGludCAqZGF0YTsKICAgIGludCBsZW5ndGg7CiAgICBpbnQgY2FwYWNpdHk7Cn0gYXJyYXk7CnZvaWQgaW50aWFsaXplX2FycmF5KGFycmF5KiBsaXN0LGludCBpbml0aWFsX3NpemUpewoKbGlzdC0+ZGF0YT0oaW50KiltYWxsb2MoaW5pdGlhbF9zaXplKnNpemVvZihpbnQpKTsKbGlzdC0+bGVuZ3RoPTA7Cmxpc3QtPmNhcGFjaXR5PWluaXRpYWxfc2l6ZTsKCn0Kdm9pZCByZXNpemUoYXJyYXkqIGxpc3QpewpsaXN0LT5jYXBhY2l0eSo9MjsKbGlzdC0+ZGF0YT0oaW50KilyZWFsbG9jKGxpc3QtPmRhdGEsbGlzdC0+Y2FwYWNpdHkqc2l6ZW9mKGludCkpOwp9CnZvaWQgYWRkX2VsZW1lbnRzKGFycmF5KiBsaXN0LGludCB2YWx1ZSl7CiAgICAgIGlmKGxpc3QtPmxlbmd0aD09bGlzdC0+Y2FwYWNpdHkpewogICAgICAgICAgICByZXNpemUobGlzdCk7CiAgICAgIH0KICAgICAgbGlzdC0+ZGF0YVtsaXN0LT5sZW5ndGgrK109dmFsdWU7Cgp9CmludCBiaW5hcnkoYXJyYXkqIGxpc3QsaW50IHRhcmdldCl7CiAgaW50IGxvdyxoaWdoOwogIGxvdz0wOwogIGhpZ2g9KGxpc3QtPmxlbmd0aC0xKTsKICBpbnQgbWlkOwogIHdoaWxlKGxvdzw9aGlnaCl7CiAgICAgIG1pZD0obG93K2hpZ2gpLzI7CiAgICAgIGlmKGxpc3QtPmRhdGFbbWlkXT09dGFyZ2V0KXsKICAgICAgICAgICAgcmV0dXJuIG1pZDsKICAgICAgfQogICAgICBlbHNlIGlmKGxpc3QtPmRhdGFbbWlkXTx0YXJnZXQpewogICAgICAgICAgICBsb3c9bWlkKzE7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgICAgIGhpZ2g9bWlkLTE7CiAgICAgIH0KICB9CiAgcmV0dXJuIC0xOwoKfQp2b2lkIHByaW50QXJyYXlMaXN0KGFycmF5KiBsaXN0KSB7CiAgICBwcmludGYoIkFycmF5TGlzdCBjb250ZW50czogIik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3QtPmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlZCAiLCBsaXN0LT5kYXRhW2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKfQoKaW50IG1haW4gKCl7CiBhcnJheSBsaXN0OwogcHJpbnRmKCJjYXBhY2l0eToiKTsKIGludCBzaXplOwogc2NhbmYoIiVkIiwmc2l6ZSk7CiBpbnQgdmFsdWU7CiBpbnRpYWxpemVfYXJyYXkoJmxpc3Qsc2l6ZSk7CiBwcmludGYoImVudGVyICVkIGVsZW1lbnRzOiAiLHNpemUpOwogZm9yKGludCBpPTA7aTxzaXplO2krKyl7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsJnZhbHVlKTsKICAgICAgYWRkX2VsZW1lbnRzKCZsaXN0LHZhbHVlKTsKIH0KIHByaW50QXJyYXlMaXN0KCZsaXN0KTsKIGludCB0YXJnZXQ7CiBwcmludGYoInRhcmdldDoiKTsKIHNjYW5mKCIlZCIsJnRhcmdldCk7CiBpbnQgaW5kZXg9YmluYXJ5KCZsaXN0LHRhcmdldCk7CiBpZihpbmRleCE9LTEpewogICAgICBwcmludGYoImZvdW5kIGluIHBvc2l0aW9uICVkIixpbmRleCsxKTsKCiB9CiBlbHNlewogICAgICBwcmludGYoIm5vdCBmb3VuZCIpOwogfQogZnJlZShsaXN0LmRhdGEpOwoKfQo=