zoukankan      html  css  js  c++  java
  • 快速排序算法(Java实现)

    public class QuickSort {
        //测试
        public static void main(String[] args) {
    QuickSort quickSort
    = new QuickSort(); int[] ints = {3, 1, 7, 10, 6, 8, 2, -6, 123};
    int[] res = quickSort.quickSort(ints, 0, ints.length - 1); System.out.println("输出排序后的数组如下:"); for (int i : res) { System.out.println(i); } } /** * 快速排序算法主体 * * @param arr * @param left 初始是0 * @param right 初始是length-1 * @return */ private int[] quickSort(int[] arr, int left, int right) { if (left < right) { // 获取基准值 base
           // 这个函数不仅仅选出了基准值,还修改了原来的数组  int base = partition(arr, left, right); //分别对左右两边递归调用 quickSort(arr, left, base - 1); quickSort(arr, base + 1, right); } return arr; } /** * 选定基准值 * * @param arr * @param left * @param right * @return */ private int partition(int[] arr, int left, int right) { // 设定基准值
         int index = left + 1; for (int i = index; i <= right; i++) { if (arr[i] < arr[left]) { swap(arr, i, index); index++; } } swap(arr,left, index - 1); return index - 1; } /** * 交换数组中两个数 * * @param arr * @param i * @param j */ private void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }
    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    生活中的大数据 hadoop
    IOS设计模式学习(11)中介者
    Java 编程的动态性,第3部分: 应用反射--转载
    Java编程 的动态性,第 2部分: 引入反射--转载
    Java 编程的动态性 第1 部分: 类和类装入--转载
    斐波那契数列(fabnacci)java实现
    Chrome调试大全--转载
    jboss7 加载module过程
    UML解惑:图说UML中的六大关系--转
    jboss学习
  • 原文地址:https://www.cnblogs.com/gslgb/p/14748554.html
Copyright © 2011-2022 走看看