Given an array of numbers, search for the first occurrence of the number
This is relatively easy algorithm. But a bit tricky at the same time.
It can be done with log(n) with almost o(1) space complexity
#include
/*
* Find the first occurrence of the given number in index.
* @author http://gullele.com
*/
void main()
{
int nums[] = {1,1,3,5,8,8,8,10,12,23,23,55};
int len = sizeof(nums)/sizeof(int);
int start = 0, end = len-1, search = 8;
int found_right = -1;
while ((end - start) > 1)
{
if (found_right != -1)
{
if (nums[end] != search)
{
break;
}
found_right = end;
end -= 1;
continue;
}
int mid = (end + start)/2;
int val = nums[mid];
if (val == search)
{
end = mid-1;
found_right = mid;
}
else if(val < search)
{
start = mid;
}
else
{
end = mid;
}
}
if (found_right != -1)
{
printf("found at %d", found_right);
}
else
{
printf("found No where");
}
}
See how you would solve these known algorithm problems
Changing decimal number to its binary equivalentFind K Complementary numbers from array Java implementation
Array reversal in Recurrsion
find longest word in the sentence
Check if two strings are anagrams or not
Find longest palindrom from sequence of characters
Implement Queue Using two Stacks – JavaScript algorithm
Flatten nested javascript array
Get maximum occurring character
Kadane’s algorithm in C – Dynamic Programming
Allan Debenedetti
*Your place is valueble for me. Thanks!…