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...找鸡哥问了,瞬间解决了,还被吐槽了代码写的好烂。。一点都不好看
不过看完鸡哥的确实是自叹不如,好好学习了他的编码风格...