標籤:
1 package com.array; 2 3 public class Sort_Quick { 4 /* 5 * 項目名稱:快速排序 ; 6 * 項目要求:用JAVA對數組進行排序,並運用快速排序演算法; 7 * Sevck; 8 */ 9 public void sort(int left, int right, int array[]) {10 int l = left;11 int r = right;12 int pirot = array[(left + right) / 2];13 int temp = 0;14 while (l < r) {15 while (array[l] < pirot && l >= left)16 l++;17 while (array[r] > pirot && r <= right)18 r--;19 if (l >= r)20 break;21 temp = array[l];22 array[l] = array[r];23 array[r] = temp;24 }25 26 if (l == r) {27 l++;28 r--;29 }30 31 if (left < r)32 sort(left, r, array);33 if (right > l)34 sort(l, right, array);35 }36 37 public static void main(String[] args) {38 int arr1[] = { 7, 3, 2, 9, 15, 1, 14 };39 Sort_Quick qs = new Sort_Quick();40 qs.sort(0, arr1.length - 1, arr1);41 42 System.out.println("The current array is:");43 44 for (int i = 0; i < arr1.length; i++) {45 System.out.print(" " + arr1[i]);46 }47 }48 }
這個需要說說了,之前快排有處寫錯了,自己調試了好久沒解決,(結果發現的時候不細心--寫成++)。
看了半天沒看到,arr1.length - 1 怎麼會變成7...找雞哥問了,瞬間解決了,還被吐槽了代碼寫的好爛。。一點都不好看
不過看完雞哥的確實是自歎不如,好好學習了他的編碼風格...
JAVA排序--[快速排序]