Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int update(int A[], int n, int prevValue, int newValue);
- int main()
- {
- int i,n,arr[100],prevValue,newValue,getResult;
- printf("How Many Elements: \n");
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- scanf("%d",&arr[i]);
- }
- printf("Enter Previous & New Value: \n");
- scanf("%d%d",&prevValue,&newValue);
- getResult= update(arr,n,prevValue,newValue);
- if(getResult==-1)
- {
- printf("Update unsuccessful\n");
- }
- else
- {
- printf("Value update at position: %d\n",getResult);
- }
- return 0;
- }
- int update(int A[], int n, int prevValue, int newValue)
- {
- int startPoint,endPoint,loc,midPoint;
- startPoint = 0; //first index of array
- endPoint = n-1; //last index of array
- loc = -1;
- while(startPoint <= endPoint)
- {
- midPoint = (startPoint+endPoint)/2;
- if(A[midPoint]==prevValue)
- {
- A[midPoint]=newValue;
- loc = midPoint;
- return loc;
- }
- else if(A[midPoint]<prevValue)
- {
- startPoint = midPoint + 1;
- }
- else
- {
- endPoint = midPoint - 1;
- }
- }
- if(startPoint>endPoint)
- {
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement