首页 > 学院 > 开发设计 > 正文

【算法】程序猿不写代码是不对的17

2019-11-08 20:14:14
字体:
来源:转载
供稿:网友
package com.kingdz.algorithm.time201702;import java.util.Arrays;/** * 快速排序 *  * @author kingdz *  */public class Algo15 {	public static void main(String[] args) {		int count = 10;		int[] number = new int[count];		number = Algo13.fillArray(count, false);		System.out.PRintln(Arrays.toString(number));		number = quicksort(number, 0, number.length - 1);	}	private static int[] quicksort(int[] number, int start, int end) {		if (start < end) {			int index = diversion(number, start, end);			quicksort(number, start, index - 1);			quicksort(number, index + 1, end);		}		return number;	}	/**	 * 分割函数	 * 	 * @param arr	 *            数组	 * @param start	 *            起始位置	 * @param end	 *            结束位置	 * @return	 */	private static int diversion(int[] arr, int start, int end) {		int base = arr[start];		int left = start;		int right = end;		while (left < right) {			while (left < right && arr[right] > base) {				right--;			}			if (left < right) {				// 此次交换后所有base右边都比base大				Algo13.swap(arr, left, right);			}			while (left < right && arr[left] < base) {				left++;			}			if (left < right) {				// 此次交换后所有base左边都比base小				Algo13.swap(arr, left, right);			}		}		System.out.println(Arrays.toString(arr));		return left;	}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表