文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>【JAVA】快速排序

【JAVA】快速排序

时间:2010-10-06  来源:老马睡不醒

这算法原理知道,但代码写起来总是丢三落四,这回写出来备份。。。

 

import java.util.*;

public class QSort {
        static int partition(int[] a, int l, int r) {
                int tmp = a[l];
                while (l < r) {
                        //注意:a[r] >= tmp 以及 a[l] <= tmp 中 = 不能丢,否则有相同数字的话死循环
                        while (l < r && a[r] >= tmp) r--;
                        a[l] = a[r];
                        while (l < r && a[l] <= tmp) l++;
                        a[r] = a[l];
                }
                a[l] = tmp;
                return l;
        }
        static void quickSort(int[] a, int l, int r) {
                if (l < r) {
                        int privot = partition(a, l, r);
                        quickSort(a, l, privot-1);
                        quickSort(a, privot+1, r);
                }
        }
        static void print(int[] a) {
                for (int i = 0; i < a.length; i++) {
                        System.out.print(a[i] + " ");
                }
                System.out.println();
        }
        public static void main(String[] args) {
                Random rand = new Random();
                int[] a = new int[25];
                for (int i = 0; i < a.length; i++) {
                        a[i] = rand.nextInt(100);
                }
                print(a);
                quickSort(a, 0, a.length-1);
                print(a);
        }
}
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载