We help IT Professionals succeed at work.

# Search an array

mattkr asked
on
Medium Priority
231 Views
Last Modified: 2010-04-02
What is the quickest way to seatch an array that is already sorted?  ANd how do I do it?
Comment
Watch Question

## View Solution Only

CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
int min=0;
int max=(sizeof(array)/sizeof(array[0]))-1;
while( min < max ){
int x = (max+min)/2;
if( array[x] < target ){
min = x+1;
}else if( array[x] > target ){
max = x-1;
}else{
printf("array[%d] = %d\n",x,array[x]);
max=min=x;
}
}

Commented:
Use binary search.

array is the array in which you want to search. target is the element you want to find.

int a=0;
int b=(sizeof(array)/sizeof(array[0]))-1;
int element;

while (a < b) {
element = (a+b)/2;
if (array[element] < target) {
a=element+1;
} else {
if (array[element] > target) {
b=element-1;
} else {
break;
}
}
}

if (a<b) {
printf ("Found at pos.: %d",element);
} else {
printf ("Not found");
}

Not the solution you were looking for? Getting a personalized solution is easy.

Commented:
Uhmm... Why not use bsearch() from the standard run-time C library?
Access more of Experts Exchange with a free account
##### Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

• View three pieces of content (articles, solutions, posts, and videos)
• Ask the experts questions (counted toward content limit)
• Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the