Thursday, May 22, 2008

Write an Optimized Binary Search algorithm.

int Search(int v[],int data,int N)
{
int start=0,end=N-1;
int mid=0;
mid = (start+end)/2;

if( (data <> v[end]) )
{
puts("NOT FOUND"); return -1;}

while(end-start>2)
{
if(data < v[mid])
end= mid -1;
else
start= mid + 1;
}

if(v[start] ==data)
{
puts("FOUND");
return start;
}

if(v[end] ==data)
{
puts("FOUND");
return end;
}
if(v[mid] ==data)
{
puts("FOUND");
return mid;
}

puts("NOT FOUND");
return -1;
}

Write an Optimized Binary Search algorithm.

int Search(int v[],int data,int N)
{
int start=0,end=N-1;
int mid=0;
mid = (start+end)/2;

if( (data < v[start]) || (data> v[end]) )
{
puts("NOT FOUND"); return -1;}

while(end-start>2)
{
if(data < v[mid])
end= mid -1;
else
start= mid + 1;
}

if(v[start] ==data)
{
puts("FOUND");
return start;
}

if(v[end] ==data)
{
puts("FOUND");
return end;
}
if(v[mid] ==data)
{
puts("FOUND");
return mid;
}

puts("NOT FOUND");
return -1;
}

What is a spanning Tree?

A spanning tree is a tree associated with a network. All the nodes of the graph appear on the tree once. A minimum spanning tree is a spanning tree organized so that the total edge weight between nodes is minimized.

25. What are the types of Collision Resolution Techniques and the methods used in each of the type?

 Open addressing (closed hashing),
The methods used include:
Overflow block,
 Closed addressing (open hashing)
The methods used include:
Linked list,
Binary tree…

Sort the given values using Quick Sort? 65 70 75 80 85 60 55 50 45

Sorting takes place from the pivot value, which is the first value of the given elements, this is marked bold. The values at the left pointer and right pointer are indicated using L and R respectively.

65 70L 75 80 85 60 55 50 45R

Since pivot is not yet changed the same process is continued after interchanging the values at L and R positions

65 45 75 L 80 85 60 55 50 R 70

65 45 50 80 L 85 60 55 R 75 70

65 45 50 55 85 L 60 R 80 75 70


65 45 50 55 60 R 85 L 80 75 70

When the L and R pointers cross each other the pivot value is interchanged with the value at right pointer. If the pivot is changed it means that the pivot has occupied its original position in the sorted order (shown in bold italics) and hence two different arrays are formed, one from start of the original array to the pivot position-1 and the other from pivot position+1 to end.

60 L 45 50 55 R 65 85 L 80 75 70 R

55 L 45 50 R 60 65 70 R 80 L 75 85

50 L 45 R 55 60 65 70 80 L 75 R 85

In the next pass we get the sorted form of the array.

45 50 55 60 65 70 75 80 85

8. Convert the expression ((A + B) * C – (D – E) ^ (F + G)) to equivalent Prefix and Postfix notations.

Prefix Notation:
^ - * +ABC - DE + FG Postfix Notation:
AB + C * DE - - FG + ^