Skip to content

Commit

Permalink
Merge pull request #43 from lunodesouza/master
Browse files Browse the repository at this point in the history
Added JumpSearch Algorithm in Searching folder.
  • Loading branch information
darpanjbora authored Oct 14, 2019
2 parents 43cc14b + b45ed38 commit be8fff7
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions Searching/JumpSearch.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
class JumpSearch {
public static int jumpSearch(int[] arr, int x){
int n = arr.length;

// Finding block size to be jumped
int step = (int)Math.floor(Math.sqrt(n));

// Finding the block where element is
// present (if it is present)
int prev = 0;
while (arr[Math.min(step, n)-1] < x){
prev = step;
step += (int)Math.floor(Math.sqrt(n));
if (prev >= n)
return -1;
}

// Doing a linear search for x in block
// beginning with prev.
while (arr[prev] < x){
prev++;

// If we reached next block or end of
// array, element is not present.
if (prev == Math.min(step, n))
return -1;
}

// If element is found
if (arr[prev] == x)
return prev;

return -1;
}

// Driver program to test function
public static void main(String [ ] args){
int arr[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21,
34, 55, 89, 144, 233, 377, 610};
int x = 55;

// Find the index of 'x' using Jump Search
int index = jumpSearch(arr, x);

// Print the index where 'x' is located
System.out.println("\nNumber " + x + " is at index " + index);
}
}

0 comments on commit be8fff7

Please sign in to comment.