• 高速排序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); } }



  • 相关阅读:
    关于JDK中的设计模式
    关于Java中的构造方法和set方法()给属性赋值
    关于Object[]数组强转成Integer[]类型的数组.
    [ImportNew]Java中的Timer类和TimerTask类
    关于Linux最基本总结
    关于数组
    关于Linux系统和Windows系统中文件夹的命名规范
    关于数组集合之间的转换
    关于Java获取系统信息
    关于Windows常用命令
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6812437.html
Copyright © 2020-2023  润新知