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

    快速排序的简单实现(大话数据结构)

    采用递归的方式,每次讲数组分成两部分,一部分是比数组指定一个值小的一部分是比指定值大的部分,常常指定的值就是传递过来数组的第一个,你也可以采用数组中的其他数字

    最后对好的两部分还是按照上面的步骤进行分类,一直到分成的两部分的数组中只有一个值为止

    import java.util.Arrays;
    
    public class QuickSort {
        void sort(int low,int end,int[]arr){
            if(low<end){
                int piov = partition(low, end, arr);
                sort(low,piov-1,arr);
                sort(piov+1,end,arr);
            }
        }
    
        int partition(int low ,int high, int []arr){
            int piovkey=arr[low];
            while(low<high){
                while(low<high&&arr[high]>=piovkey){
                    high--;
                }
                swamp(low,high,arr);
                while(low<high&&arr[low]<=piovkey){
                    low++;
                }
                swamp(low,high,arr);        //注意在这里每次交换的其实就是之前指定的那个值
    
            }
            return low;
        }
         void swamp(int index1,int index2,int arr[]){
            int temp=arr[index1];
            arr[index1]=arr[index2];
            arr[index2]=temp;
        }
    
        public static void main(String[] args) {
            int a[]={4,2,6,5,1,3};
            new QuickSort().sort(0,a.length-1,a);
            System.out.println(Arrays.toString(a));
        }
    }
  • 相关阅读:
    django-5.Django 管理后台
    django-3.模板引擎
    django-2.视图与url配置
    django- 1.环境与初始化项目
    css层叠样式表
    bootstrap table 个人心得
    attr和prop的区别 chosen插件
    extract-text-webpack-plugin
    Git常用命令大全,迅速提升你的Git水平
    dropload.js 局部区域加载坑
  • 原文地址:https://www.cnblogs.com/feixiangdecainiao/p/10635406.html
Copyright © 2011-2022 走看看