quicksorttest.java

来自「java经典10例子」· Java 代码 · 共 44 行

JAVA
44
字号
import java.util.*;

interface Compare{
	boolean lessThan(Object lhs,Object rhs);
	boolean lessThanOrEqual(Object lhs,Object rhs);
}

class SortVector extends Vector{
	private Compare compare;
	public SortVector(Compare comp){
		compare = comp;
	}
	public void sort(){
		quickSort(0,size()-1);
	}
	private void quickSort(int left,int right){
		if(right >left){
			Object o1 = elementAt(right);
			int i = left -1;
			int j = right;
			while(true){
				while(compare.lessThan(elementAt(++i),o1))
					;
				while(j>0){
					if(compare.lessThanOrEqual(elementAt(--i),o1))
						break;
				}
				if(i>=j) break;
				swap(i,j);
			}
			swap(i,right);
			quickSort(left,i-1);
			quickSort(i+1,right);
		}
	}
	private void swap(int a1,int a2){
		Object t = elementAt(a1);
		setElementAt(elementAt(a2),a1);
		setElementAt(tmp,a2);
	}
}

class QuickSortTest{
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?