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



  • 相关阅读:
    Napa简介——基于Web用于Outlook/SharePoint的IDE
    Azul开源Zing Jvm
    如何控制单元测试的粒度?
    存储过程与Entity Framework
    Java增强的for循环和普通for循环对比
    Java中的static变量、方法、代码块初始化执行顺序
    推荐一款好用的博客软件——菊子曰
    Android进程与线程
    OPhone SDK
    开始学习Android
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6812437.html
Copyright © 2020-2023  润新知