0% found this document useful (0 votes)
7 views4 pages

Java Algorithms Notes

The document provides an overview of fundamental searching and sorting algorithms implemented in Java, including Binary Search, Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, and Linear Search. Each algorithm is accompanied by code examples that demonstrate its functionality. This resource is designed for individuals preparing for interviews or seeking to practice coding skills.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views4 pages

Java Algorithms Notes

The document provides an overview of fundamental searching and sorting algorithms implemented in Java, including Binary Search, Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, and Linear Search. Each algorithm is accompanied by code examples that demonstrate its functionality. This resource is designed for individuals preparing for interviews or seeking to practice coding skills.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Java Algorithms - Key Concepts & Examples

1. Binary Search

public class BinarySearch {


public static int binarySearch(int[] arr, int key) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == key) return mid;
if (arr[mid] < key) left = mid + 1;
else right = mid - 1;
}
return -1;
}

public static void main(String[] args) {


int[] arr = {1, 3, 5, 7, 9, 11};
int key = 7;
int result = binarySearch(arr, key);
System.out.println("Element found at index: " + result);
}
}

2. Bubble Sort

public class BubbleSort {


public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}

public static void main(String[] args) {


int[] arr = {5, 1, 4, 2, 8};
bubbleSort(arr);
for (int i : arr) System.out.print(i + " ");

1
}
}

3. Selection Sort

public class SelectionSort {


public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n-1; i++) {
int min_idx = i;
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) min_idx = j;
}
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}

public static void main(String[] args) {


int[] arr = {64, 25, 12, 22, 11};
selectionSort(arr);
for (int i : arr) System.out.print(i + " ");
}
}

4. Insertion Sort

public class InsertionSort {


public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}

public static void main(String[] args) {


int[] arr = {12, 11, 13, 5, 6};
insertionSort(arr);

2
for (int i : arr) System.out.print(i + " ");
}
}

5. Merge Sort

public class MergeSort {


public static void merge(int[] arr, int l, int m, int r) {
int n1 = m - l + 1;
int n2 = r - m;
int[] L = new int[n1];
int[] R = new int[n2];
for (int i = 0; i < n1; i++) L[i] = arr[l + i];
for (int j = 0; j < n2; j++) R[j] = arr[m + 1 + j];
int i = 0, j = 0, k = l;
while (i < n1 && j < n2) {
arr[k++] = (L[i] <= R[j]) ? L[i++] : R[j++];
}
while (i < n1) arr[k++] = L[i++];
while (j < n2) arr[k++] = R[j++];
}

public static void mergeSort(int[] arr, int l, int r) {


if (l < r) {
int m = l + (r-l)/2;
mergeSort(arr, l, m);
mergeSort(arr, m+1, r);
merge(arr, l, m, r);
}
}

public static void main(String[] args) {


int[] arr = {12, 11, 13, 5, 6, 7};
mergeSort(arr, 0, arr.length-1);
for (int i : arr) System.out.print(i + " ");
}
}

6. Quick Sort

public class QuickSort {


public static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {

3
if (arr[j] < pivot) {
i++;
int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
}
}
int temp = arr[i+1]; arr[i+1] = arr[high]; arr[high] = temp;
return i + 1;
}

public static void quickSort(int[] arr, int low, int high) {


if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi-1);
quickSort(arr, pi+1, high);
}
}

public static void main(String[] args) {


int[] arr = {10, 7, 8, 9, 1, 5};
quickSort(arr, 0, arr.length-1);
for (int i : arr) System.out.print(i + " ");
}
}

7. Linear Search

public class LinearSearch {


public static int linearSearch(int[] arr, int key) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) return i;
}
return -1;
}

public static void main(String[] args) {


int[] arr = {3, 4, 2, 7, 5};
int key = 7;
int result = linearSearch(arr, key);
System.out.println("Element found at index: " + result);
}
}

This document covers basic searching and sorting algorithms in Java with ready-to-run code
examples, suitable for interviews and practice.

You might also like