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

    快速排序的基本思路:
    1、在数组a中,有一段待排序的数据,下标从l到r。
    2、取a[l]放在变量value中,通过由右、左两边对value的取值的比较,为value选择应该排定的位置。这时要将比value大的数放右边,比它小的数放左边。当value到达最终位置后(如下标m),由它划分了左右两个集合[l..m-1]、[m+1..r]。然后转第1步,再用相同的思路分别去处理左集合和右集合。

     1 import java.math.BigInteger;
     2 import java.util.Arrays;
     3 import java.util.Scanner;
     4 
     5 
     6 public class Main {
     7     public static void main(String[] args) {
     8         int[] a = {5,6,3,1,5,4,5,7,8,3};
     9         f(a,0,a.length-1);
    10         System.out.println(Arrays.toString(a));
    11     }
    12     public static void  f(int[] a,int l,int r){
    13         if(l>=r) return;
    14         int temp = a[l];
    15         int l1 = l;
    16         int r1 = r;
    17         boolean flag = true;
    18         while(l1<r1){
    19             if(flag){
    20                 if(a[r1]<temp){
    21                     a[l1] = a[r1];
    22                     l1++;
    23                     flag = false;
    24                 }else{
    25                     r1--;
    26                 }
    27             }else{
    28                 if(a[l1]>temp){
    29                     a[r1] = a[l1];
    30                     r1--;
    31                     flag = true;
    32                 }else{
    33                     l1++;
    34                 }
    35             }
    36             
    37         }
    38         a[l1] = temp;
    39         f(a,l,l1-1);
    40         f(a,l1+1,r);
    41     }
    42 }
  • 相关阅读:
    4、springboot之全局异常捕获
    3、springboot之热部署
    可重入锁
    2、springboot返回json
    1、springboot之HelloWorld
    [转]查询 SQL Server 系统目录常见问题
    设计模式原则详解
    [转]第二章 控制反转和依赖注入
    [转]Spring.Net介绍
    [转]Oracle High Water Level高水位分析
  • 原文地址:https://www.cnblogs.com/lolybj/p/6599055.html
Copyright © 2011-2022 走看看