首页 > 代码库 > 高速排序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); } }
高速排序java语言实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。