码迷,mamicode.com
首页 > 编程语言 > 详细

高速排序java语言实现

时间:2017-05-05 14:27:39      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:import   for   出错   排序   quick   inittest   ati   pivot   warnings   

本博客不再更新,很多其它精彩内容请訪问我的独立博客


高速排序是非常重要的排序算法,可是我在学的时候发现网上没有特别好的样例所以自己动手写了一个。

自己动手丰衣足食。


package sort;

import java.util.Random;

public class QuickSort {
	@SuppressWarnings("unused")
	public boolean initTestArray(int[] testArray) {// 初始化testArray
		if (testArray == null)
			return false;
		Random random = new Random();
		for (int i = 0; i < testArray.length; i++) {
			testArray[i] = random.nextInt(200);
		}
		return true;
	}

	public boolean printTestArray(int[] testArray) {// 打印testArray中的内容
		if (testArray == null)
			return false;
		for (int i = 0; i < testArray.length; i++) {
			System.out.print(testArray[i] + ",");
		}
		System.out.println();
		return true;
	}

	public static boolean quickSort(int[] testArray, int left, int right) {
		if(testArray==null)
			return false;
		if (left < right) {
			int pivotpos = QuickSort.partition(testArray, left, right);
			QuickSort.quickSort(testArray, left, pivotpos - 1);
			QuickSort.quickSort(testArray, pivotpos + 1, right);
		}
		return true;
	}

	public static int partition(int[] testArray, int low, int high) {
		int i = low, j = high, pivot = testArray[low],temp=0;
		while (i < j) {
			while (i < j && testArray[j] >= pivot)
				j--;
			while (i < j && testArray[i] <= pivot)
				i++;
			temp = testArray[i];
			testArray[i] = testArray[j];
			testArray[j] = temp;
		}
		testArray[low] = testArray[i];
		testArray[i] = pivot;
		return i;
	}

	public static void main(String args[]) {
		int[] testArray = new int[20];
		QuickSort quickSort = new QuickSort();
		quickSort.initTestArray(testArray);
		System.out.println("排序前:");
		quickSort.printTestArray(testArray);
		if(!QuickSort.quickSort(testArray, 0, testArray.length - 1))
			System.out.println("排序出错!

"); System.out.println("排序后:"); quickSort.printTestArray(testArray); } }



高速排序java语言实现

标签:import   for   出错   排序   quick   inittest   ati   pivot   warnings   

原文地址:http://www.cnblogs.com/yfceshi/p/6812437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!