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



  • 相关阅读:
    70.BOM
    69.捕获错误try catch
    68.键盘事件
    523. Continuous Subarray Sum
    901. Online Stock Span
    547. Friend Circles
    162. Find Peak Element
    1008. Construct Binary Search Tree from Preorder Traversal
    889. Construct Binary Tree from Preorder and Postorder Traversal
    106. Construct Binary Tree from Inorder and Postorder Traversal
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6812437.html
Copyright © 2011-2022 走看看