zoukankan      html  css  js  c++  java
  • 快速排序 JAVA实现

    快速排序

    每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。
    快速排序是不稳定的,时间复杂度(平均):nlogn

    public class QuickSort {
    public static void Sort(int[] arr, int low, int high) { int i, j, temp; if (low > high) { return; } i = low;//一定要注意是从low开始的 j = high; // temp就是基准位 temp = arr[low]; while (i < j) { //从右向左,找到小于基准位的数组成员位置 while (temp <= arr[j] && i < j) { j--; } //从左向右,找到大于基准位的数组成员位置 while (temp >= arr[i] && i < j) { i++; } //如果满足条件则交换arr[i],arr[j] if (i < j) { swap(arr, i, j); } } //最后将基准为与i和j相等位置的数字交换(此时i j相等) arr[low] = arr[i]; arr[i] = temp; //分而治之 Sort(arr, low, i - 1); Sort(arr, i + 1, high); } public static void swap(int[] a, int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } public static void main(String[] args) { int[] arr = { 4, 5, 9, 4, 7, 23, 3, 4, 2, 1, 8, 11, 19, 10 }; Sort(arr, 0, arr.length - 1); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
  • 相关阅读:
    bzoj 1231 [Usaco2008 Nov]mixup2 混乱的奶牛
    bzoj 1263 [SCOI2006]整数划分
    bzoj 1264 [AHOI2006]基因匹配Match dp + 树状数组
    bzoj 1230: [Usaco2008 Nov]lites 开关灯
    2015 icpc北京赛区 D 最小割
    HDU
    bzoj 1079: [SCOI2008]着色方案
    最大素因数
    最大素因数
    欧拉函数
  • 原文地址:https://www.cnblogs.com/yanhowever/p/10624114.html
Copyright © 2011-2022 走看看