[알고리즘] 빠 른 정렬

오늘 은 주로 인터넷 을 통 해 빠 른 정렬 과 정렬 알고리즘 을 돌 이 켜 보 았 습 니 다. 오 랜 만 에 잊 어 버 린 것 이 많 지 않 습 니 다.
이 문장 은 매우 유용 하 다http://blog.csdn.net/morewindows/article/details/6684558
public class QuickSort {
	private static int[] array = {1,4,2,8,6,9,0};
	private static int size = array.length;
	
	private int adjustArray(int leftIndex, int rightIndex) {
		int key = array[leftIndex];
		while (leftIndex < rightIndex) {
			while (leftIndex < rightIndex && key >= array[rightIndex]) {
				rightIndex--;
			}
			if (leftIndex < rightIndex) {
				array[leftIndex] = array[rightIndex];
				leftIndex++;
			}
			while (leftIndex < rightIndex && key < array[leftIndex]) {
				leftIndex++;
			}
			if (leftIndex < rightIndex) {
				array[rightIndex] = array[leftIndex];
				rightIndex--;
			}
		}
		array[leftIndex] = key;
		return leftIndex;
	}
	
	private void quickSort(int leftIndex, int rightIndex) {
		if (leftIndex < rightIndex) {
			int i = adjustArray(leftIndex, rightIndex);
			quickSort(leftIndex, i - 1); //    
			quickSort(i + 1, rightIndex);
		}
	}
	
	public void test() {
		quickSort(0, size - 1);
		for (int i : array) {
			System.out.println(i);
		}
	}
}

좋은 웹페이지 즐겨찾기