快速排序

	public static void QuickSort2(int[] data, int left, int right) {

		if (left < right) {
			int p = part(data, left, right);
			QuickSort2(data, left, p - 1);
			QuickSort2(data, p + 1, right);
		}

	}

	private static int part(int[] data, int left, int right) {

		int middle = data[right];

		int p = left - 1;

		for (int i = left; i < right; i++) {
			if (data[i] < middle) {
				p++;
				swap(data, p, i);
			}
		}

		swap(data, ++p, right);
		return p;

	}

	private static void swap(int[] array, int i, int j) {
		int temp;
		temp = array[i];
		array[i] = array[j];
		array[j] = temp;
	}

	public static void main(String[] args) {
		int[] pData = new int[10];
		for (int i = 0; i < 10; i++)
			pData[i] = (int) (Math.random() * 100);

		for (int i = 0; i < pData.length; i++)
			System.out.print(pData[i] + " ");

		QuickSort.QuickSort2(pData, 0, pData.length - 1);

		System.out.println("\n***********************");

		for (int i = 0; i < pData.length; i++)
			System.out.print(pData[i] + " ");
	}

	public static void printArray(int[] pData) {
		for (int i = 0; i < pData.length; i++)
			System.out.print(pData[i] + " ");

	}

你可能感兴趣的:(J#)