Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions Searching-algorithms/Binarysearch.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,26 @@
import java.util.Arrays;

public class Binarysearch {
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays return not found (-1).
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the length of the Array: ");
int size = sc.nextInt();
if (size < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (size == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
System.out.println("Enter Array elements in non-decreasing (sorted) order: ");
int arr[] = new int[size];
for (int i = 0; i < size; i++) {
Expand All @@ -30,6 +46,9 @@ public static void main(String[] args) {
sc.close();
}
public static int binarysearch(int[] arr, int key) {
if (arr == null || arr.length == 0) {
return -1;
}
int low = 0;
int high = arr.length - 1;
while (low <= high) {
Expand All @@ -45,6 +64,9 @@ else if (key < arr[mid])
}

public static boolean isSorted(int[] arr) {
if (arr == null || arr.length < 2) {
return true;
}
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false;
Expand Down
22 changes: 22 additions & 0 deletions Searching-algorithms/Fibonaccisearch.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,27 @@
import java.util.Scanner;

public class Fibonaccisearch {
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays return not found (-1).
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.println("Enter the length of the array: ");
int size = sc.nextInt();
if (size < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (size == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}

int[] arr = new int[size];
System.out.println("Enter array elements in non-decreasing (sorted) order: ");
Expand Down Expand Up @@ -36,6 +52,9 @@ public static void main(String[] args) {
}

public static int fibonaccisearch(int[] arr, int key) {
if (arr == null || arr.length == 0) {
return -1;
}
int n = arr.length;
int fnminus2 = 0;
int fnminus1 = 1;
Expand Down Expand Up @@ -74,6 +93,9 @@ public static int fibonaccisearch(int[] arr, int key) {
}

public static boolean isSorted(int[] arr) {
if (arr == null || arr.length < 2) {
return true;
}
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false;
Expand Down
22 changes: 22 additions & 0 deletions Searching-algorithms/Interpolationsearch.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,26 @@
import java.util.Arrays;

public class Interpolationsearch {
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays return not found (-1).
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the length of the Array: ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (n == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
System.out.println("Enter Array elements in non-decreasing (sorted) order: ");
int arr[] = new int[n];
for (int i = 0; i < n; i++) {
Expand All @@ -30,6 +46,9 @@ public static void main(String[] args) {
sc.close();
}
public static int interpolationSearch(int arr[], int lo, int hi, int x) {
if (arr == null || arr.length == 0 || lo > hi) {
return -1;
}
int pos;
if (lo <= hi && x >= arr[lo] && x <= arr[hi]) {
if (arr[lo] == arr[hi]) {
Expand All @@ -49,6 +68,9 @@ public static int interpolationSearch(int arr[], int lo, int hi, int x) {
}

public static boolean isSorted(int[] arr) {
if (arr == null || arr.length < 2) {
return true;
}
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false;
Expand Down
20 changes: 20 additions & 0 deletions Searching-algorithms/Linearsearch.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,26 @@
import java.util.Arrays;

public class Linearsearch {
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays return not found (-1).
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the length of the Array: ");
int size = sc.nextInt();
if (size < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (size == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
System.out.println("Enter Array elements: ");
int arr[] = new int[size];
for (int i = 0; i < size; i++) {
Expand All @@ -20,8 +36,12 @@ public static void main(String[] args) {
} else {
System.out.println("Element " + key + " was NOT Found in the entered Array.");
}
sc.close();
}
public static int linearsearch(int[] arr, int key){
if (arr == null || arr.length == 0) {
return -1;
}
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) {
return i;
Expand Down
22 changes: 22 additions & 0 deletions Searching-algorithms/Uniform_binarysearch.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,26 @@
import java.util.Arrays;

public class Uniform_binarysearch {
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays return not found (-1).
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the length of the Array: ");
int size = sc.nextInt();
if (size < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (size == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
System.out.println("Enter Array elements in non-decreasing (sorted) order: ");
int arr[] = new int[size];
for (int i = 0; i < size; i++) {
Expand All @@ -30,6 +46,9 @@ public static void main(String[] args) {
sc.close();
}
public static int binunisearch(int[] arr, int key) {
if (arr == null || arr.length == 0) {
return -1;
}
int n = arr.length;
int k = (int)(Math.log(n) / Math.log(2));
System.out.println("n = " + n);
Expand All @@ -52,6 +71,9 @@ public static int binunisearch(int[] arr, int key) {
}

public static boolean isSorted(int[] arr) {
if (arr == null || arr.length < 2) {
return true;
}
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false;
Expand Down
20 changes: 20 additions & 0 deletions Sorting-algorithms/Bubblesort.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,39 @@
import java.util.Scanner;
import java.util.Arrays;
public class Bubblesort{
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays are ignored by the algorithm.
*/
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Enter the array size : ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (n == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
int[] arr = new int[n];
for(int i = 0; i < n; i ++){
arr[i] = sc.nextInt();
}
System.out.println("Entered array : "+ Arrays.toString(arr));
bubblesort(arr);
System.out.println("Sorted array : "+ Arrays.toString(arr));
sc.close();
}
public static void bubblesort(int[] arr){
if (arr == null || arr.length == 0) {
return;
}
int n = arr.length;
for(int i = 0; i < n - 1; i++){
for(int j = 0; j < n - 1 - i; j++){
Expand Down
23 changes: 23 additions & 0 deletions Sorting-algorithms/Heapsort.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
import java.util.Scanner;
import java.util.Arrays;
public class Heapsort {
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays are ignored by sort/heapify.
*/
public void sort(int arr[]) {
if (arr == null || arr.length == 0) {
return;
}
int n = arr.length;
for (int i = n / 2 - 1; i >= 0; i--) {
heapify(arr, n, i);
Expand All @@ -14,6 +23,9 @@ public void sort(int arr[]) {
}
}
void heapify(int arr[], int n, int i) {
if (arr == null || n <= 0) {
return;
}
int max = i;
int leftChild = 2 * i + 1;
int rightChild = 2 * i + 2;
Expand All @@ -32,6 +44,16 @@ public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of elements in the array : ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (n == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
System.out.println("Enter array elements : ");
int[] arr = new int[n];
for(int i = 0; i <n; i++){
Expand All @@ -41,5 +63,6 @@ public static void main(String args[]) {
Heapsort hs = new Heapsort();
hs.sort(arr);
System.out.println("Sorted array:"+ Arrays.toString(arr));
sc.close();
}
}
20 changes: 20 additions & 0 deletions Sorting-algorithms/Insertionsort.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,39 @@
import java.util.Scanner;
import java.util.Arrays;
public class Insertionsort{
/*
* Edge-case behavior:
* - Negative size is rejected.
* - Size 0 exits early with "Nothing to sort/search".
* - Null/empty arrays are ignored by the algorithm.
*/
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Enter the array size : ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("Invalid input: size cannot be negative.");
sc.close();
return;
}
if (n == 0) {
System.out.println("Nothing to sort/search");
sc.close();
return;
}
int[] arr = new int[n];
for(int i = 0; i < n; i ++){
arr[i] = sc.nextInt();
}
System.out.println("Entered array : "+ Arrays.toString(arr));
insertionsort(arr);
System.out.println("Sorted array : "+ Arrays.toString(arr));
sc.close();
}
public static void insertionsort(int[] arr){
if (arr == null || arr.length == 0) {
return;
}
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
Expand Down
Loading
Loading