Skip to content

Commit 63a2a86

Browse files
authored
Add files via upload
1 parent 22f81d0 commit 63a2a86

5 files changed

Lines changed: 152 additions & 0 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package InfinityJune21.DivideAndConquer;
2+
3+
public class MedianOfTwoSortedArrays {
4+
static int getMedian(int arr1[], int arr2[], int n) {
5+
int i = 0, j = 0, count, m1 = -1, m2 = -1;
6+
7+
for(count = 0; count <= n; count++) {
8+
if(arr1[i] <= arr2[j]) {
9+
m1 = m2;
10+
m2 = arr1[i];
11+
i++;
12+
}
13+
else {
14+
m1 = m2;
15+
m2 = arr2[j];
16+
j++;
17+
}
18+
}
19+
20+
int median = (m1 + m2) / 2;
21+
22+
return median;
23+
}
24+
25+
public static void main(String[] args) {
26+
int arr1[] = {1, 13, 25, 40, 50};
27+
int arr2[] = {2, 17, 30, 45, 70};
28+
/*
29+
Merged array: 1, 2, 13, 17, 25, 30, 40, 45, 50, 70
30+
(25 + 30) / 2 = 27
31+
*/
32+
33+
int n1 = arr1.length;
34+
int n2 = arr2.length;
35+
36+
if(n1 == n2) {
37+
int median = getMedian(arr1, arr2, n1);
38+
System.out.println(median);
39+
}
40+
else {
41+
System.out.println("Size of arrays are not equal");
42+
}
43+
}
44+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package InfinityJune21.DivideAndConquer;
2+
3+
public class OptimisedPowerCalculation {
4+
static int power(int x, int y) {
5+
if(y == 0) {
6+
return 1;
7+
}
8+
9+
int temp = power(x, y / 2);
10+
if(y % 2 == 0) {
11+
return (temp * temp);
12+
}
13+
else {
14+
return (x * temp * temp);
15+
}
16+
}
17+
18+
public static void main(String[] args) {
19+
int x = 8;
20+
int y = 3;
21+
22+
int xPowerY = power(x, y);
23+
24+
System.out.println(xPowerY);
25+
}
26+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package InfinityJune21.DivideAndConquer;
2+
3+
public class PowerCalculation {
4+
static int power(int x, int y) {
5+
if(y == 0) {
6+
return 1;
7+
}
8+
else if(y % 2 == 0) {
9+
return (power(x, y / 2) * power(x, y / 2));
10+
}
11+
else {
12+
return (x * power(x, y / 2) * power(x, y / 2));
13+
}
14+
}
15+
16+
public static void main(String[] args) {
17+
int x = 8;
18+
int y = 3;
19+
20+
int xPowerY = power(x, y);
21+
22+
System.out.println(xPowerY);
23+
}
24+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package InfinityJune21.DivideAndConquer;
2+
3+
public class PowerCalculationOfNegativePowers {
4+
static float power(int x, int y) {
5+
if(y == 0) {
6+
return 1;
7+
}
8+
9+
float temp = power(x, y / 2);
10+
if(y % 2 == 0) {
11+
return (temp * temp);
12+
}
13+
else {
14+
if(y > 0) {
15+
return (x * temp * temp);
16+
}
17+
else {
18+
return (temp * temp / x);
19+
}
20+
}
21+
}
22+
23+
public static void main(String[] args) {
24+
int x = 8;
25+
int y = -5;
26+
27+
float xPowerY = power(x, y);
28+
29+
System.out.println(xPowerY);
30+
}
31+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,34 @@
11
package InfinityJune21.SearchTechniques;
22

33
public class InterpolationSearch {
4+
static int interpolationSearch(int arr[], int lo, int hi, int element) {
5+
int pos;
6+
7+
if(lo <= hi && element >= arr[lo] && element <= arr[hi]) {
8+
pos = lo + ((hi - lo) / (arr[hi] - arr[lo])) * (element - arr[lo]);
9+
10+
if(arr[pos] == element) {
11+
return pos;
12+
}
13+
14+
if(arr[pos] < element) {
15+
return interpolationSearch(arr, pos + 1, hi, element);
16+
}
17+
18+
if(arr[pos] > element) {
19+
return interpolationSearch(arr, lo, pos - 1, element);
20+
}
21+
}
22+
23+
return -1;
24+
}
25+
426
public static void main(String[] args) {
27+
int arr[] = {10, 12, 20, 24, 25, 35, 42, 50, 61, 73};
28+
int length = arr.length;
29+
int element = 61;
30+
int index = interpolationSearch(arr, 0, length - 1, element);
531

32+
System.out.println("Index: " + index);
633
}
734
}

0 commit comments

Comments
 (0)