zoukankan      html  css  js  c++  java
  • 高速排序java语言实现

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


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

    自己动手丰衣足食。


    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); } }



  • 相关阅读:
    BZOJ2298: [HAOI2011]problem a
    BZOJ4066: 简单题
    BZOJ2131: 免费的馅饼
    Educational Codeforces Round 97 div2
    [SCOI2016]背单词
    [SCOI2015]情报传递(离线树状数组跑图)
    树上主席树(无代码,单纯谈思路的一篇水文)
    CF Round #679 div2赛后总结
    [SCOI2015]小凸解密码(平衡树、线段树做法)
    CF Round #677 div3 赛后总结
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6812437.html
Copyright © 2011-2022 走看看