JAVA排序--[快速排序]

 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...找鸡哥问了,瞬间解决了,还被吐槽了代码写的好烂。。一点都不好看

不过看完鸡哥的确实是自叹不如,好好学习了他的编码风格...

原文地址:https://www.cnblogs.com/sevck/p/4498670.html