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

    转载自:

    https://blog.csdn.net/shujuelin/article/details/82423852

    int[] arr={6,3,5,1,7,8,11,4,9};

    正序排列。

    1.首先拿到一个基准数,例如那数组第一个元素 6为基准数,

    2.然后从左边第一个数开始跟基准数比较,从右边第一个数开始跟基准数比较。

    3.从左边开始查找比6大的,从右边开始查找比6小的

    4.两边都找到之后,将左右两边找到的数字互换位置,这样大的数字就被放在了右边,小的数字就放在了左边。

    5.循环一轮之后,最终左右探测会遇到。这时候,需要把基准数和当前相遇的数字交换。

    6.递归调用

    package com.citi.test.demo;
    
    public class QuickSort1 {
        
        public static void quickSort(int[] arr,int low,int high){
            int i,j,temp,t;
            i=low;
            j=high;
            if(i>j){
                return;
            }
            temp=arr[low];
            while(i<j){
                //temp跟右边开始比较
                while(temp<=arr[j]&&i<j){
                    j--;
                }
                while(temp>=arr[i]&&i<j){
                    i++;
                }
                if(i<j){
                    t=arr[i];
                    arr[i]=arr[j];
                    arr[j]=t;
                }
            }
            //表示i=j
            arr[low]=arr[i];
            arr[i]=temp;
            //左半边数组执行快排
            quickSort(arr, low, j-1);
            //右半边数组执行快排
            quickSort(arr,j+1,arr.length-1);
        }
        
        public static void main(String[] args) {
            int[] arr={6,3,5,1,7,8,11,4,10,9};
            quickSort(arr,0,arr.length-1);
            for(int i=0;i<arr.length-1;i++){
                System.out.println(arr[i]);
            }
        }
    }
    View Code

      

  • 相关阅读:
    MongoDB数据库新建数据库用户
    Grafana部署
    k8s ingress及ingress controller
    Rabbitmq如何安装插件
    RabbitMQ手册之rabbitmq-plugins
    RabbitMQ运行在Docker容器中
    K8S资源限制
    System类
    Runtime类
    StringBuffer类
  • 原文地址:https://www.cnblogs.com/liumy/p/12026039.html
Copyright © 2011-2022 走看看