Exponential search, Computer Engineering

Assignment Help:

Exponential Search

Another alternative to variable size decrease-and-conquer search is known as exponential search. This algorithm begins searching at the beginning of the list. It then progressively tests at larger intervals (A[2],A[4],A[8], . . .) until a straddling range is found which may contain the search value. A binary search is then performed on only the suspect range to ?nd the ?nal index position.

ALGORITHM ExponentialSearch (A[0 . . . n - 1], k)

// A variable-size decrease and conquer search in an ordered list.
// INPUT : An array A[0 . . . n - 1] of ordered elements, and a search key k.
// OUTPUT : an index to the position of k in A if k is found or -1 otherwise.
1: set pos ← 2
2: while pos < n and A[pos] < k do
3: prev ← pos
4: pos ← pos  2
5: if pos > n - 1 then
6: pos ← n - 1
7: result ← BinarySearch(A[prev . . . pos], k)
8: if result = -1 then
9: return -1
10: else
11: return result + prev

Algorithm ExponentialSearch shows the pseudocode for this solution. Implement the algorithm.


Related Discussions:- Exponential search

Explain can we have constant volatile variable, Const and volatile keywords...

Const and volatile keywords should not be used together due to both are opposite in nature. A variable is declared as "const" means its value is not able to be altered but if i

Microprocessor, overlapping segmentation process in 8086

overlapping segmentation process in 8086

List the major components of the keyboard, List the major components of the...

List the major components of the keyboard/Display interface. a. Keyboard section b. CPU interface section c. Display section d. Scan section

Translator for low level programming language, Translator for low level pro...

Translator for low level programming language were called as    Assembler

How do you traverse a btree in backward in-order, Put the node in the right...

Put the node in the right subtree Then, Put the root  Put the node in the left subtree

Define the bandwidth of a monitor, Q. Define the Bandwidth of a monitor? ...

Q. Define the Bandwidth of a monitor? Bandwidth is the amount of signal the monitor can handle and it is rated in MHz .This is the most usually quoted specification of a monito

Participate in grid computing, Different systems that can participate in gr...

Different systems that can participate in grid computing as platform are:  Windows 3.1, 95/98, NT, 2000 XP , DOS, OS/2, , supported by  Intel ( x86); Mac OS  A/UX (Unix)  sup

Define cache line, Define cache line. Cache block is used to refer to a...

Define cache line. Cache block is used to refer to a set of contiguous address location of some size. Cache block is also referred to as cache line.

What is meant by refreshing of the screen, What is meant by refreshing of t...

What is meant by refreshing of the screen?  Some method is required for maintaining the picture on the screen. Refreshing of screen is completed by keeping the phosphorus glowi

Define parallel programming, Conventionally software has been written for s...

Conventionally software has been written for serial computation in that programs are written for computers which have a single Central Processing Unit (CPU). Here the problems are

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd