How to sort the array in Java?

Sorting Arrays in Java: A Comprehensive Guide

Introduction

Arrays are a fundamental data structure in Java, used to store collections of elements of the same data type. Sorting an array is an essential operation that can be performed on any array, and it’s crucial to understand how to do it correctly. In this article, we’ll explore the different methods of sorting arrays in Java, including bubble sort, selection sort, insertion sort, merge sort, and quick sort.

Bubble Sort

What is Bubble Sort?

Bubble sort is a simple sorting algorithm that works by repeatedly iterating through the array and swapping adjacent elements if they’re in the wrong order. This process continues until the entire array is sorted.

How to Implement Bubble Sort in Java

Here’s a step-by-step guide to implementing bubble sort in Java:

  • Create an array of elements of the same data type.
  • Initialize a variable swapped to true to track if any swaps were made in the current iteration.
  • Iterate through the array from the first element to the second last element.
  • Compare adjacent elements and swap them if they’re in the wrong order.
  • If no swaps were made in the current iteration, the array is already sorted, and we can exit the loop.
  • If swaps were made, update the swapped variable to false.
  • Repeat the process until the entire array is sorted.

Example Code

public class BubbleSort {
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
System.out.println("Original array: " + java.util.Arrays.toString(array));
bubbleSort(array);
System.out.println("Sorted array: " + java.util.Arrays.toString(array));
}

public static void bubbleSort(int[] array) {
int n = array.length;
boolean swapped;

do {
swapped = false;
for (int i = 0; i < n - 1; i++) {
if (array[i] > array[i + 1]) {
// Swap elements
int temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
}
}

Selection Sort

What is Selection Sort?

Selection sort is a simple sorting algorithm that works by selecting the smallest (or largest) element from the unsorted portion of the array and moving it to the beginning (or end) of the unsorted portion.

How to Implement Selection Sort in Java

Here’s a step-by-step guide to implementing selection sort in Java:

  • Create an array of elements of the same data type.
  • Initialize a variable minIndex to 0 to track the index of the smallest element.
  • Iterate through the array from the first element to the second last element.
  • Compare the current element with the smallest element found so far (minIndex).
  • If the current element is smaller than the smallest element, update minIndex to i.
  • Swap the current element with the smallest element found so far.
  • Repeat the process until the entire array is sorted.

Example Code

public class SelectionSort {
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
System.out.println("Original array: " + java.util.Arrays.toString(array));
selectionSort(array);
System.out.println("Sorted array: " + java.util.Arrays.toString(array));
}

public static void selectionSort(int[] array) {
int n = array.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
// Swap elements
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
}
}

Insertion Sort

What is Insertion Sort?

Insertion sort is a simple sorting algorithm that works by iterating through the array one element at a time, inserting each element into its proper position in the sorted portion of the array.

How to Implement Insertion Sort in Java

Here’s a step-by-step guide to implementing insertion sort in Java:

  • Create an array of elements of the same data type.
  • Initialize a variable sorted to true to track if the array is sorted.
  • Iterate through the array from the first element to the second last element.
  • Compare the current element with the elements in the sorted portion of the array.
  • If the current element is smaller than the elements in the sorted portion, insert it into the sorted portion.
  • Repeat the process until the entire array is sorted.

Example Code

public class InsertionSort {
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
System.out.println("Original array: " + java.util.Arrays.toString(array));
insertionSort(array);
System.out.println("Sorted array: " + java.util.Arrays.toString(array));
}

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

Merge Sort

What is Merge Sort?

Merge sort is a divide-and-conquer algorithm that works by splitting the array into two halves, sorting each half recursively, and then merging the two sorted halves.

How to Implement Merge Sort in Java

Here’s a step-by-step guide to implementing merge sort in Java:

  • Create an array of elements of the same data type.
  • Split the array into two halves.
  • Recursively sort each half.
  • Merge the two sorted halves.

Example Code

public class MergeSort {
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
System.out.println("Original array: " + java.util.Arrays.toString(array));
mergeSort(array);
System.out.println("Sorted array: " + java.util.Arrays.toString(array));
}

public static void mergeSort(int[] array) {
if (array.length <= 1) {
return;
}
int mid = array.length / 2;
int[] left = new int[mid];
int[] right = new int[array.length - mid];
System.arraycopy(array, 0, left, 0, mid);
System.arraycopy(array, mid, right, 0, array.length - mid);
mergeSort(left);
mergeSort(right);
merge(left, right);
}

public static void merge(int[] left, int[] right) {
int n = left.length;
int i = 0, j = 0, k = 0;
while (i < n && j < n) {
if (left[i] <= right[j]) {
left[k] = left[i];
i++;
} else {
left[k] = right[j];
j++;
}
k++;
}
while (i < n) {
left[k] = left[i];
i++;
k++;
}
while (j < n) {
right[k] = right[j];
j++;
k++;
}
}
}

Quick Sort

What is Quick Sort?

Quick sort is a divide-and-conquer algorithm that works by selecting a pivot element, partitioning the array around the pivot, and recursively sorting the subarrays.

How to Implement Quick Sort in Java

Here’s a step-by-step guide to implementing quick sort in Java:

  • Create an array of elements of the same data type.
  • Select a pivot element.
  • Partition the array around the pivot.
  • Recursively sort the subarrays.

Example Code


public class QuickSort {
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
System.out.println("Original array: " + java.util.Arrays.toString(array));
quickSort(array);
System.out.println("Sorted array: " + java.util.Arrays.toString(array));
}

public static void quickSort(int[] array) {
quickSort(array, 0, array.length - 1);
}

public static void quickSort(int[] array, int low, int high) {
if (low < high) {
int pivotIndex = partition(array, low, high);
quickSort(array, low, pivotIndex - 1);
quickSort(array, pivotIndex + 1, high);
}
}

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

Unlock the Future: Watch Our Essential Tech Videos!


Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top