qsortalgorithm.java

来自「北大Java 语言程序设计 ppt课件及源码」· Java 代码 · 共 65 行

JAVA
65
字号
/* * @(#)QSortAlgorithm.java	1.6f 95/01/31 James Gosling * * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved. * * Permission to use, copy, modify, and distribute this software * and its documentation for NON-COMMERCIAL purposes and without * fee is hereby granted provided that this copyright notice * appears in all copies. Please refer to the file "copyright.html" * for further important copyright and licensing information. * * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. *//** * A quick sort demonstration algorithm * SortAlgorithm.java, Thu Oct 27 10:32:35 1994 * * @author James Gosling * @version 	1.6f, 31 Jan 1995 */class QSortAlgorithm extends SortAlgorithm {    void sort(int[] a, int lo0, int hi0) throws Exception {	int lo = lo0;	int hi = hi0;	pause(lo, hi);	if (lo >= hi) {	    return;	}	int mid = a[(lo + hi) / 2];	while (lo < hi) {	    while (lo<hi && a[lo] < mid) {		lo++;	    }	    while (lo<hi && a[hi] > mid) {		hi--;	    }	    if (lo < hi) {		int T = a[lo];		a[lo] = a[hi];		a[hi] = T;                lo++;                hi--;		pause();	    }	}	if (hi < lo) {	    int T = hi;	    hi = lo;	    lo = T;	}	sort(a, lo0, lo);	sort(a, lo == lo0 ? lo+1 : lo, hi0);    }    void sort(int[] a) throws Exception {	sort(a, 0, a.length-1);    }}

⌨️ 快捷键说明

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