快速排序方法

运行效果:

=================================================

代码部分:

=================================================

/hello_test/src/com/b510/test/QuickStore.java

复制代码
 1 /**
 2  * 
 3  */
 4 package com.b510.test;
 5 
 6 /**
 7  * 快速排序
 8  * @author <a href="mailto:hongtenzone@foxmail.com">hongten</a>
 9  * @date 2013-3-1
10  * 更多信息:<a href="http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html">more>></a>
11  */
12 public class QuickStore {
13     /**
14      * 创建随机数组
15      * @param min 数组的最小值
16      * @param max 数组的最大值
17      * @param length 数组的长度
18      * @return 随机数组
19      */
20     public static int[] createArray(int min, int max, int length) {
21         int[] array = new int[length];
22         for (int i = 0; i < length; i++) {
23             array[i] = min + (int) (Math.random() * (max - min + 1));
24             System.out.println("随机数 :array[" + i + "] = " + array[i]);
25         }
26         return array;
27     }
28     
29     /**
30      * 快速排序
31      * @param array 源数组
32      * @param l 
33      * @param r
34      * @return
35      */
36     public static int[] quickStore(int[] array, int l, int r) {
37         if (l < r) {
38             int i = l, j = r, x = array[l];
39             while (i < j) {
40                 while (i < j && array[j] >= x)
41                     // 从右向左找第一个小于x的数
42                     j--;
43                 if (i < j)
44                     array[i++] = array[j];
45 
46                 while (i < j && array[i] < x)
47                     // 从左向右找第一个大于等于x的数
48                     i++;
49                 if (i < j)
50                     array[j--] = array[i];
51             }
52             array[i] = x;
53             quickStore(array, l, i - 1); // 递归调用
54             quickStore(array, i + 1, r);
55         }
56         return array;
57     }
58     
59     /**
60      * 显示数组信息
61      * @param array
62      */
63     public static void showArray(int[] array) {
64         System.out.println("排序后....");
65         for (int i = 0; i < array.length; i++) {
66             System.out.println("array[" + i + "] = " + array[i]);
67         }
68     }
69     
70     /**
71      * test
72      * @param args
73      */
74     public static void main(String[] args) {
75         int[] array = createArray(12, 50, 6);
76         int[] newArray = quickStore(array, 0, array.length - 1);
77         showArray(newArray);
78     }
79 }
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值