From da614c13f7c78fc2d7ad82b6ccfd492243d28197 Mon Sep 17 00:00:00 2001 From: SOMNATH0904 Date: Thu, 18 Jan 2024 20:20:06 +0530 Subject: [PATCH] Updated AD Lab Assignment --- .../LAB-04(Sorting)/Q3.java | 89 +++++++------------ 1 file changed, 32 insertions(+), 57 deletions(-) diff --git a/Third_Semester/Algorithm-Design-1(AD1)/LAB-04(Sorting)/Q3.java b/Third_Semester/Algorithm-Design-1(AD1)/LAB-04(Sorting)/Q3.java index 3bf3ee3..819bc1a 100644 --- a/Third_Semester/Algorithm-Design-1(AD1)/LAB-04(Sorting)/Q3.java +++ b/Third_Semester/Algorithm-Design-1(AD1)/LAB-04(Sorting)/Q3.java @@ -1,71 +1,46 @@ // Ques 3 : Check reverse -import java.util.Scanner; +import java.util.Arrays; -public class Q3 { - - public static void print(int[] arr) { - int n = arr.length; - for(int i = 0; i < n; i++) { - System.out.print(arr[i]+" "); - } - System.out.println(); - } - - public static void swap(int[] arr, int i, int j) { - int temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - - public static void reverse(int[] arr, int i, int j) { - while(i < j) { - swap(arr, i, j); - i++; - j--; +class Q3 { + public static boolean checkReverse(int arr[], int n) { + int temp[] = new int[n]; + for (int i = 0; i < n; i++) { + temp[i] = arr[i]; } - } - - public static boolean sortedCheck(int[] arr) { - int flag = 0; - for(int i = 1; i < arr.length; i++) { - if(arr[i-1] > arr[i]) { - flag = 1; + Arrays.sort(temp); + int front; + for(front = 0; front < n; front++) { + if(temp[front] != arr[front]) { + break; } - return false; } - return true; - } - public static void reverseSortedCheck(int[] arr) { - for(int i = 0; i < arr.length; i++) { - for(int j = 0; j < arr.length; j++) { - reverse(arr, i, j); - boolean res = sortedCheck(arr); - if(res == true) { - System.out.println("Reversing the Subarray : "); - reverse(arr, i, j); - } - for(int k = i; k <= j; k++) { - System.out.println(arr[k] + " "); - System.out.println("Makes the Array Sorted!!"); - } - reverse(arr, i, j); + int back; + for(back = n-1; back >= 0; back--) { + if(temp[back] != arr[back]) { + break; } } - System.out.println("There is no SubArray whose reversal makes the array sorted"); + if(front >= back) { + return true; + } + do{ + front++; + if (arr[front - 1] < arr[front]) { + return false; + } + } while(front != back); + return true; } public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - System.out.println("Enter Size of array : "); - int n = sc.nextInt(); - int[] arr = new int[n]; - System.out.println("Enter Array Elements : "); - for(int i = 0; i < n; i++) { - arr[i] = sc.nextInt(); + int arr[] = {1, 2, 5, 4, 3}; + int n = arr.length; + System.out.print("Is the Array Sorted : "); + if (checkReverse(arr, n)) { + System.out.print("True"); + } else { + System.out.print("False"); } - System.out.println("Array Elements are : "); - print(arr); - reverseSortedCheck(arr); } }