java mergesort algorithm

java mergesort algorithm
/**
 * @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));

	}

}
Sour‮c‬e: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]
Created Time:2017-10-04 23:00:11  Author:lautturi