Skip to content

Commit 4c9c2a0

Browse files
Add Day 14 advance level array Programs
1 parent d0211b2 commit 4c9c2a0

12 files changed

Lines changed: 648 additions & 0 deletions
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package array_Programming.advance.day_14;
2+
//8. Rearrange an array with alternate high and low elements
3+
import java.util.*;
4+
public class AlternateHighLow
5+
{
6+
public static void rearrange(int[] arr)
7+
{
8+
int n = arr.length;
9+
int[] result = new int[n];
10+
Arrays.sort(arr);
11+
int low = 0;
12+
int high = n - 1;
13+
int index = 0;
14+
while (low <= high)
15+
{
16+
if (index < n)
17+
result[index++] = arr[low++];
18+
if (index < n)
19+
result[index++] = arr[high--];
20+
}
21+
for (int i = 0; i < n; i++)
22+
arr[i] = result[i];
23+
}
24+
public static void main(String[] args)
25+
{
26+
Scanner sc = new Scanner(System.in);
27+
System.out.print("Enter size of array: ");
28+
int n = sc.nextInt();
29+
int[] arr = new int[n];
30+
System.out.println("Enter " + n + " elements:");
31+
for (int i = 0; i < n; i++)
32+
arr[i] = sc.nextInt();
33+
System.out.println("Original Array: " + Arrays.toString(arr));
34+
rearrange(arr);
35+
System.out.println("Rearranged Array: " + Arrays.toString(arr));
36+
sc.close();
37+
}
38+
}
39+
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package array_Programming.advance.day_14;
2+
//1. Check if the sum of all array elements is an Armstrong number.
3+
import java.util.Arrays;
4+
import java.util.Scanner;
5+
public class ArmstrongArraySum
6+
{
7+
public static int sum(int[] arr)
8+
{
9+
int sum = 0;
10+
for(int i = 0 ;i<=arr.length-1;i++)
11+
{
12+
sum = sum + arr[i];
13+
}
14+
System.out.println("The sum of the array elements is " +sum);
15+
return sum;
16+
}
17+
public static int count(int num)
18+
{
19+
int count = 0;
20+
while(num>0)
21+
{
22+
count++;
23+
num = num/10;
24+
}
25+
return count;
26+
}
27+
public static int exponential(int base,int power)
28+
{
29+
int expo = 1;
30+
for(int i = 1;i<=power;i++)
31+
{
32+
expo = expo*base;
33+
}
34+
return expo;
35+
}
36+
public static int sumOfExponential(int num)
37+
{
38+
int sum = 0;
39+
int power = count(num);
40+
int temp = num;
41+
while(temp>0)
42+
{
43+
int ld = temp % 10;
44+
int expo = exponential(ld,power);
45+
sum = sum + expo;
46+
temp = temp/10;
47+
}
48+
return sum;
49+
}
50+
public static void checkArrayArmstrong(int num)
51+
{
52+
int sum = sumOfExponential(num);
53+
if(sum == num)
54+
{
55+
System.out.println(num +" is a Armstrong number");
56+
}
57+
else
58+
System.out.println(num + " is not a Armstrong number");
59+
}
60+
public static void main(String[] args)
61+
{
62+
Scanner sc = new Scanner(System.in);
63+
System.out.println("Enter the size of the array : ");
64+
int size = sc.nextInt();
65+
int [] arr = new int [size];
66+
System.out.println("Enter "+ size + " elements");
67+
for(int i = 0;i<=arr.length-1;i++)
68+
{
69+
arr[i] = sc.nextInt();
70+
}
71+
System.out.println("Array : "+ Arrays.toString(arr));
72+
int arraySum = sum(arr);
73+
checkArrayArmstrong(arraySum);
74+
sc.close();
75+
}
76+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package array_Programming.advance.day_14;
2+
//4. Check if the sum of all odd elements is an Armstrong number.
3+
import java.util.*;
4+
public class ArmstrongNumberOfOddElements
5+
{
6+
public static int sumOfOddElements(int [] arr)
7+
{
8+
int sum = 0;
9+
for(int i = 0;i<=arr.length-1;i++)
10+
{
11+
if(arr[i] % 2 !=0)
12+
{
13+
sum = sum + arr[i];
14+
}
15+
}
16+
System.out.println("The sum of odd elments is " + sum);
17+
return sum;
18+
}
19+
public static int count(int num)
20+
{
21+
int count = 0;
22+
while(num>0)
23+
{
24+
num = num/10;
25+
count++;
26+
}
27+
return count;
28+
}
29+
public static int expo(int base,int power)
30+
{
31+
int expo = 1;
32+
for(int i = 1;i<=power;i++)
33+
{
34+
expo = expo * base;
35+
}
36+
return expo;
37+
}
38+
public static int sumOfExponential(int num)
39+
{
40+
int power = count(num);
41+
int sum = 0;
42+
int temp = num;
43+
while(temp>0)
44+
{
45+
int ld = temp % 10;
46+
int expo = expo(ld,power);
47+
sum = sum + expo;
48+
temp = temp/10;
49+
}
50+
return sum;
51+
}
52+
public static void checkArmstrongNumberOfOddElements(int num)
53+
{
54+
int sum = sumOfExponential(num);
55+
if(sum == num)
56+
{
57+
System.out.println(num + " is a Armstrong number");
58+
59+
}
60+
else
61+
System.out.println(num + " is not a Armstrong number");
62+
}
63+
public static void main(String[] args) {
64+
Scanner sc = new Scanner(System.in);
65+
System.out.println("Enter the size of the array : ");
66+
int size = sc.nextInt();
67+
int [] arr = new int[size];
68+
System.out.println("Enter "+size+ " elements:");
69+
for(int i = 0;i<=arr.length-1;i++)
70+
{
71+
arr[i] = sc.nextInt();
72+
}
73+
System.out.println("Arrays "+ Arrays.toString(arr));
74+
int oddSum = sumOfOddElements(arr);
75+
checkArmstrongNumberOfOddElements(oddSum);
76+
sc.close();
77+
}
78+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package array_Programming.advance.day_14;
2+
//10. Find the Majority Element (Boyer-Moore Algorithm)
3+
import java.util.*;
4+
public class MajorityElement
5+
{
6+
public static int findCandidate(int[] arr)
7+
{
8+
int candidate = arr[0];
9+
int count = 1;
10+
11+
for (int i = 1; i < arr.length; i++)
12+
{
13+
if (arr[i] == candidate)
14+
count++;
15+
else
16+
count--;
17+
18+
if (count == 0)
19+
{
20+
candidate = arr[i];
21+
count = 1;
22+
}
23+
}
24+
return candidate;
25+
}
26+
public static boolean isMajority(int[] arr, int candidate)
27+
{
28+
int count = 0;
29+
30+
for (int i = 0; i < arr.length; i++)
31+
{
32+
if (arr[i] == candidate)
33+
count++;
34+
}
35+
36+
return count > arr.length / 2;
37+
}
38+
public static void main(String[] args)
39+
{
40+
Scanner sc = new Scanner(System.in);
41+
System.out.print("Enter size of array: ");
42+
int n = sc.nextInt();
43+
int[] arr = new int[n];
44+
System.out.println("Enter " + n + " elements:");
45+
for (int i = 0; i < n; i++)
46+
arr[i] = sc.nextInt();
47+
System.out.println("Array: " + Arrays.toString(arr));
48+
int candidate = findCandidate(arr);
49+
if (isMajority(arr, candidate))
50+
System.out.println("Majority Element is: " + candidate);
51+
else
52+
System.out.println("No Majority Element found");
53+
54+
sc.close();
55+
}
56+
}
57+
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package array_Programming.advance.day_14;
2+
//5. Write a Java Program for MergeSort
3+
import java.util.*;
4+
public class MergeSort
5+
{
6+
public static void sort(int[] arr)
7+
{
8+
if (arr == null || arr.length < 2)
9+
return;
10+
mergeSort(arr, 0, arr.length - 1);
11+
}
12+
private static void mergeSort(int[] arr, int left, int right)
13+
{
14+
if (left >= right)
15+
return;
16+
int mid = left + (right - left) / 2;
17+
mergeSort(arr, left, mid);
18+
mergeSort(arr, mid + 1, right);
19+
merge(arr, left, mid, right);
20+
}
21+
private static void merge(int[] arr, int left, int mid, int right)
22+
{
23+
int n1 = mid - left + 1;
24+
int n2 = right - mid;
25+
int[] leftArr = new int[n1];
26+
int[] rightArr = new int[n2];
27+
for (int i = 0; i < n1; i++)
28+
leftArr[i] = arr[left + i];
29+
for (int j = 0; j < n2; j++)
30+
rightArr[j] = arr[mid + 1 + j];
31+
int i = 0, j = 0, k = left;
32+
while (i < n1 && j < n2)
33+
{
34+
if (leftArr[i] <= rightArr[j])
35+
arr[k++] = leftArr[i++];
36+
else
37+
arr[k++] = rightArr[j++];
38+
}
39+
while (i < n1)
40+
arr[k++] = leftArr[i++];
41+
42+
while (j < n2)
43+
arr[k++] = rightArr[j++];
44+
}
45+
public static void main(String[] args)
46+
{
47+
Scanner sc = new Scanner(System.in);
48+
System.out.print("Enter size of the array: ");
49+
int n = sc.nextInt();
50+
int[] arr = new int[n];
51+
System.out.println("Enter " + n + " elements:");
52+
for (int i = 0; i < n; i++)
53+
{
54+
arr[i] = sc.nextInt();
55+
}
56+
System.out.println("Original Array: " + Arrays.toString(arr));
57+
sort(arr);
58+
System.out.println("Sorted Array: " + Arrays.toString(arr));
59+
sc.close();
60+
}
61+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package array_Programming.advance.day_14;
2+
//9. Find the missing element in a given array in the series of 1 to n
3+
import java.util.*;
4+
public class MissingElement
5+
{
6+
public static int findMissing(int[] arr, int n)
7+
{
8+
int expectedSum = n * (n + 1) / 2;
9+
int actualSum = 0;
10+
for (int i = 0; i < arr.length; i++)
11+
{
12+
actualSum += arr[i];
13+
}
14+
return expectedSum - actualSum;
15+
}
16+
public static void main(String[] args)
17+
{
18+
Scanner sc = new Scanner(System.in);
19+
System.out.print("Enter value of n: ");
20+
int n = sc.nextInt();
21+
int[] arr = new int[n - 1];
22+
System.out.println("Enter " + (n - 1) + " elements:");
23+
for (int i = 0; i < arr.length; i++)
24+
{
25+
arr[i] = sc.nextInt();
26+
}
27+
System.out.println("Array: " + Arrays.toString(arr));
28+
int missing = findMissing(arr, n);
29+
System.out.println("Missing number is: " + missing);
30+
sc.close();
31+
}
32+
}

0 commit comments

Comments
 (0)