All pastes #957350 Raw Edit

Something

public text v1 · immutable
#957350 ·published 2008-03-25 22:29 UTC
rendered paste body
import java.util.*;

public class ComparingSortAlgorithms
{
	public static void main(String[] args)
	{
		Random gen = new Random();
		Scanner reader = new Scanner(System.in);
		while(true)
		{
			System.out.print("Enter the array length [0 to quit]: ");
			int arrayLength = reader.nextInt();
			if (arrayLength <= 0) break;
			int[] a1 = new int[arrayLength];
			int[] a2 = new int[arrayLength];
			for (int i = 0; i < a1.length; i++) a1[i] = gen.nextInt(100001);
			for (int i = 0; i < a1.length; i++) a2[i] = gen.nextInt(100001);
			Date d1 = new Date();
			bubbleSort(a1);
			Date d2 = new Date();
			long elapsedTime1 = d2.getTime() - d1.getTime();
			d1 = new Date();
			quickSort (a2, 0, a2.length - 1);
			d2 = new Date();
			long elapsedTime2 = (d2.getTime() - d1.getTime());
			System.out.printf("        %12s %14s%n", "Bubble Sort", "QuickSort");
			System.out.printf("Length %8d %16d%n", arrayLength, arrayLength * 100);
			System.out.printf("Time   %8d %16d%n%n", elapsedTime1, elapsedTime2);
		}
	}
	private static void bubbleSort(int[] a)
	{
		for (int i = 0; i < a.length; i++)
		{
			for (int j = i + 1; j < a.length; j++)
			{
				if (a[i] > a[j])
				{
					int temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		}
	}
	private static void quickSort(int[] a, int left, int right)
	{
		if (left >= right) return;
		int i = left;
		int j = right;
		int pivotValue = a[(left + right) / 2];
		while(i < j)
		{
			while (a[i] < pivotValue) i++;
			while (pivotValue < a[j]) j--;
			if (i <= j)
			{
				int temp = a[i];
				a[i] = a[j];
				a[j] = temp;
				i++;
				j--;
			}
		}
		quickSort (a, left, j);
		quickSort (a, i, right);
	}
}