quicksort.java

来自「这是一款基于PlaceLab软件开发的导航系统中间件的客户端程序.」· Java 代码 · 共 41 行

JAVA
41
字号
package org.placelab.util;	public class QuickSort {			public interface Comparator {		public int compareTo(Object a, Object b);	}	private Object[] data;	private Comparator comparator;	public QuickSort(Object[] data, Comparator comparator) {		this.comparator = comparator;		this.data = data;	}	public void sort() {		quicksort(0, data.length - 1);	}	private void quicksort(int p, int r) {		if (p < r) {			int q = partition(p, r);			if (q == r)				q--;			quicksort(p, q);			quicksort(q + 1, r);		}	}	private int partition(int lo, int hi) {		Object pivot = data[(lo+hi)/2];		while (true) {			while (comparator.compareTo(data[hi], pivot) >= 0 && lo < hi)				hi--;			while (comparator.compareTo(data[lo], pivot) < 0 && lo < hi)				lo++;			if (lo < hi) {				Object T = data[lo];				data[lo] = data[hi];				data[hi] = T;			} else				return hi;		}	}}

⌨️ 快捷键说明

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