Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit be74c1e

Browse files
author
Ram swaroop
committed
interpolation search : done + code refactoring
1 parent bd0ff7b commit be74c1e

File tree

9 files changed

+61
-11
lines changed

9 files changed

+61
-11
lines changed

src/me/ramswaroop/arrays/KthLargestElement.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.ramswaroop.arrays;
22

3+
import me.ramswaroop.arrays.sorting.MergeSort;
34
import me.ramswaroop.common.MaxHeap;
45

56
import java.util.Arrays;

src/me/ramswaroop/arrays/PivotedBinarySearch.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package me.ramswaroop.arrays;
22

3-
import me.ramswaroop.common.Search;
3+
import me.ramswaroop.arrays.searching.BinarySearch;
44

55
/**
66
* Created by IntelliJ IDEA.
@@ -28,9 +28,9 @@ public static int pivotedBinarySearch(int a[], int n) {
2828
if (pivot == -1 || a[pivot] == n) {
2929
return pivot;
3030
} else if (n <= a[0]) {
31-
return Search.binarySearch(a, n, pivot + 1, a.length - 1);
31+
return BinarySearch.binarySearch(a, n, pivot + 1, a.length - 1);
3232
} else {
33-
return Search.binarySearch(a, n, 0, pivot - 1);
33+
return BinarySearch.binarySearch(a, n, 0, pivot - 1);
3434
}
3535
}
3636

src/me/ramswaroop/arrays/TwoElementsSumClosestToZero.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.ramswaroop.arrays;
22

3+
import me.ramswaroop.arrays.sorting.QuickSort;
4+
35
import java.util.Arrays;
46

57
/**

src/me/ramswaroop/common/Search.java renamed to src/me/ramswaroop/arrays/searching/BinarySearch.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package me.ramswaroop.common;
1+
package me.ramswaroop.arrays.searching;
22

33
/**
44
* Created by IntelliJ IDEA.
55
*
66
* @author: ramswaroop
7-
* @date: 5/31/15
8-
* @time: 10:45 PM
7+
* @date: 9/1/15
8+
* @time: 4:56 PM
99
*/
10-
public class Search {
10+
public class BinarySearch {
1111

1212
/**
1313
* Searches an element {@param n} in a sorted array {@param a}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package me.ramswaroop.arrays.searching;
2+
3+
/**
4+
* Created by IntelliJ IDEA.
5+
*
6+
* @author: ramswaroop
7+
* @date: 9/1/15
8+
* @time: 4:57 PM
9+
*/
10+
public class InterpolationSearch {
11+
12+
/**
13+
* @param a
14+
* @param k
15+
* @return
16+
*/
17+
public static int search(int[] a, int k) {
18+
int low = 0, high = a.length - 1, mid;
19+
20+
while (a[low] != a[high] && k >= a[low] && k <= a[high]) {
21+
mid = low + (k - a[low]) * (high - low) / a[high] - a[low];
22+
23+
if (k < a[mid]) {
24+
high = mid - 1;
25+
} else if (k > a[mid]) {
26+
low = mid + 1;
27+
} else {
28+
return mid;
29+
}
30+
}
31+
32+
if (k == a[low]) {
33+
return low;
34+
} else {
35+
return -1;
36+
}
37+
}
38+
39+
public static void main(String a[]) {
40+
System.out.println(search(new int[]{0, 2}, 2));
41+
System.out.println(search(new int[]{0, 1}, 2));
42+
System.out.println(search(new int[]{0, 1, 2, 3}, 2));
43+
System.out.println(search(new int[]{0, 1, 2, 3}, 3));
44+
System.out.println(search(new int[]{0, 2}, 0));
45+
System.out.println(search(new int[]{0, 1, 2, 2, 2, 3, 3}, 2));
46+
}
47+
}

src/me/ramswaroop/arrays/HeapSort.java renamed to src/me/ramswaroop/arrays/sorting/HeapSort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.ramswaroop.arrays;
1+
package me.ramswaroop.arrays.sorting;
22

33
import me.ramswaroop.common.MaxHeap;
44

src/me/ramswaroop/arrays/MergeSort.java renamed to src/me/ramswaroop/arrays/sorting/MergeSort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.ramswaroop.arrays;
1+
package me.ramswaroop.arrays.sorting;
22

33
import java.util.Arrays;
44

src/me/ramswaroop/arrays/QuickSort.java renamed to src/me/ramswaroop/arrays/sorting/QuickSort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.ramswaroop.arrays;
1+
package me.ramswaroop.arrays.sorting;
22

33
import java.util.Arrays;
44

src/me/ramswaroop/arrays/SelectionSort.java renamed to src/me/ramswaroop/arrays/sorting/SelectionSort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.ramswaroop.arrays;
1+
package me.ramswaroop.arrays.sorting;
22

33
import java.util.Arrays;
44

0 commit comments

Comments
 (0)