zoukankan      html  css  js  c++  java
  • 分治算法之快速排序

    基本思想就是:设置一个key=48  从后往前比  如果后面数小于48   那就交互位置,再从前往后比,如果前面数大于48就交换位置,从后往前比,以此类推。

    java代码实现:

    public class ArithmeticQuickSort {
    public void quick_sort(int[] arrays, int lenght) {
    if (null == arrays || lenght < 1) {
    System.out.println("input error!");
    return;
    }
    _quick_sort(arrays, 0, lenght - 1);
    }

    public void _quick_sort(int[] arrays, int start, int end) {
    if (start >= end) {
    return;
    }

    int i = start;
    int j = end;
    int value = arrays[i];
    boolean flag = true;
    while (i != j) {
    if (flag) {
    if (value > arrays[j]) {
    swap(arrays, i, j);
    flag = false;

    } else {
    j--;
    }
    } else {
    if (value < arrays[i]) {
    swap(arrays, i, j);
    flag = true;
    } else {
    i++;
    }
    }
    }
    snp(arrays);
    _quick_sort(arrays, start, j - 1);
    _quick_sort(arrays, i + 1, end);

    }

    public void snp(int[] arrays) {
    for (int i = 0; i < arrays.length; i++) {
    System.out.print(arrays[i] + " ");
    }
    System.out.println();
    }

    private void swap(int[] arrays, int i, int j) {
    int temp;
    temp = arrays[i];
    arrays[i] = arrays[j];
    arrays[j] = temp;
    }

    public static void main(String args[]) {
    ArithmeticQuickSort q = new ArithmeticQuickSort();
    int[] a = { 49, 38, 65, 12, 45, 5,87,78 };
    q.quick_sort(a, 8);
    }

    }

  • 相关阅读:
    linux 系统管理(2) 文件或目录数量统计
    linux系统管理(1)之 内核编译选项查看
    apt 命令大全
    system命令
    ubuntu 登陆闪回
    网络知识之ipset
    mac 系统配置(一)
    windows下的qt编译器配置
    QT5.14.1+qwt-6.1.4编译
    无法打开源文件QtWidgets/QApplication
  • 原文地址:https://www.cnblogs.com/cyz110/p/6277991.html
Copyright © 2011-2022 走看看