1. Quick Sort Implementation in Java

Divide-and-conquer algorithm with O(N log N) average time complexity:

public class QuickSort { 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); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[high], i = low - 1; for (int j = low; j < high; j++) { 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; } }

2. Custom Singly LinkedList Implementation

Building a custom LinkedList data structure in Java from scratch:

public class LinkedList { class Node { int data; Node next; Node(int d) { data = d; next = null; } } Node head; public void insert(int data) { Node newNode = new Node(data); if (head == null) head = newNode; else { Node last = head; while (last.next != null) last = last.next; last.next = newNode; } } }