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

        public static int quickSort(int[] arr,int i,int j) {
            //确定一个基准数,快速排序
            int baseNum=arr[i];
            //从左向右寻找索引
            int left=i;
            //从右向左寻找索引
            int right=j;
            while (left<right) {
                 //先从右向左扫描
                while (arr[right]>=baseNum&&right>left) {
                    right--;
                }
                //从左向右
                while (arr[left]<=baseNum&&left<right) {
                    left++;
                }
                
                //两个方向是否相遇
                if (left==right) {
                    //将基准数与当前值交换
                    int temp=arr[left];
                    arr[left]=baseNum;
                    arr[i]=temp;
                }
                
                //交换数据
                int swap=arr[left];
                arr[left]=arr[right];
                arr[right]=swap;
            }
            return right;
        }
        
        public static int[] Sort(int[] arr,int i,int j) {
            if (i>=j) {
                return arr;
            }
            int middposition=quickSort(arr,i,j);
            Sort(arr,i,middposition-1);
            Sort(arr, middposition+1, j);
            return arr;
        }

    调用:

    int[] arr= {6, 1, 2 ,7 ,9 ,3 ,4 ,5, 10 ,8};
    int[] sortArr=Sort(arr,0,arr.length-1);

     
  • 相关阅读:
    配置步骤
    swap区
    Oracle的left join中on和where的区别
    drop与truncate
    关于trace
    oracle执行计划连接方式
    oracle系统结构
    查询存档
    oracle统计信息
    分区索引
  • 原文地址:https://www.cnblogs.com/mibing/p/10805920.html
Copyright © 2011-2022 走看看