diff --git a/ORDER AGNOSTIC BINARY SEARCH/OrderAgniosticSearch.java b/ORDER AGNOSTIC BINARY SEARCH/OrderAgniosticSearch.java new file mode 100644 index 0000000..781a837 --- /dev/null +++ b/ORDER AGNOSTIC BINARY SEARCH/OrderAgniosticSearch.java @@ -0,0 +1,59 @@ +package dsa; + +class OrderAgnosticSearch { + public static void main(String[] args) { + + int[] arr = {-18, -12, -4, 0, 2, 3, 4, 15, 16, 18, 22, 45, 89}; + int target = 22; + int ans = orderAgnosticBS(arr, target); + System.out.println(ans); + + } + + static int orderAgnosticBS(int[] arr, int target) { + int start = 0; + int end = arr.length - 1; + + + // find whether the array is sorted in ascending or descending + boolean isAsc = arr[start] < arr[end]; + + + while (start <= end) { + //find mid element +// int mid = (start + end)/2; // might be possible that (start + end) exceed the range of integer java + int mid = start + (end - start) / 2; + + + if (arr[mid] == target) { + return mid; + } + + if (isAsc) { + + + + if (target < arr[mid]) { + end = mid - 1; + } else{ + start = mid + 1; + } + + } + else + { + if (target > arr[mid]) { + end = mid - 1; + } else{ + start = mid + 1; + } + + + } + } + + return -1; + } + + +} diff --git a/binary search in array/binarysearch.java b/binary search in array/binarysearch.java new file mode 100644 index 0000000..746e7d0 --- /dev/null +++ b/binary search in array/binarysearch.java @@ -0,0 +1,37 @@ +package dsa; + +public class binarysearch { + public static void main(String[] args) { + + int[] arr = {-18, -12, -4, 0, 2, 3, 4, 15, 16, 18, 22, 45, 89}; + int target = 22; + int ans = binarySearch(arr, target); + System.out.println(ans); + + + } + + + static int binarySearch(int[] arr, int target) { + int start = 0; + int end = arr.length - 1; + + while (start <= end) { + int mid = start + (end - start) / 2; + + if (target < arr[mid]) { + end = mid - 1; + } else if (target > arr[mid]) { + start = mid + 1; + } else { + // ans found + return mid; + } + + + } + return -1; + } +} + + diff --git a/sortingInAnArray/sortingInJava.java b/sortingInAnArray/sortingInJava.java new file mode 100644 index 0000000..7496c44 --- /dev/null +++ b/sortingInAnArray/sortingInJava.java @@ -0,0 +1,36 @@ +package dsa; +import java.util.Scanner; +public class sortingInJava +{ + public static void main(String[] args) + { + int n, temp; + Scanner s = new Scanner(System.in); + System.out.print("Enter the number of elements: "); + n = s.nextInt(); + int a[] = new int[n]; + System.out.println("Enter the elements of the array: "); + for (int i = 0; i < n; i++) + { + a[i] = s.nextInt(); + } + for (int i = 0; i < n; i++) + { + for (int j = i + 1; j < n; j++) + { + if (a[i] < a[j]) + { + temp = a[i]; + a[i] = a[j]; + a[j] = temp; + } + } + } + System.out.println("Array elements in descending order:"); + for (int i = 0; i < n - 1; i++) + { + System.out.println(a[i]); + } + System.out.print(a[n - 1]); + } +} \ No newline at end of file