/** * @author lautturi.com * Java example: java sort an array using merge sort */ import java.util.*; public class Lautturi { static void sort(int[] arr) { if (arr.length < 2) return; int mid = arr.length / 2; int[] left_half = new int[mid]; int[] right_half = new int[arr.length - mid]; // copying the elements of array into left_half for (int i = 0; i < mid; i++) { left_half[i] = arr[i]; } // copying the elements of array into right_half for (int i = mid; i < arr.length; i++) { right_half[i - mid] = arr[i]; } sort(left_half); sort(right_half); merge(arr, left_half, right_half); } static void merge(int[] arr, int[] left_half, int[] right_half) { int i = 0, j = 0, k = 0; while (i < left_half.length && j < right_half.length) { if (left_half[i] < right_half[j]) { arr[k++] = left_half[i++]; } else { arr[k++] = right_half[j++]; } } while (i < left_half.length) { arr[k++] = left_half[i++]; } while (j < right_half.length) { arr[k++] = right_half[j++]; } } public static void main(String[] args) { int[] numbers = { 11, 4, 2, 7, 55, 16, 12, 8, 13, 38 }; System.out.println("original array:" + Arrays.toString(numbers)); sort(numbers); System.out.println("sorted array:" + Arrays.toString(numbers)); } }Source:www.lautturi.com
output:
original array:[11, 4, 2, 7, 55, 16, 12, 8, 13, 38] sorted array:[2, 4, 7, 8, 11, 12, 13, 16, 38, 55]