zoukankan      html  css  js  c++  java
  • 【基础排序】— 快速排序

    一些大学学过的基础在这里总结一下

    package base.sort;
    
    import java.util.Arrays;
    import java.util.Random;
    //O(nlogn) 快速排序
    public class QuickSort {
    
        public static void main(String[] args) {
            
            QuickSort sort = new QuickSort();
            int[] a = new int[32];
            Random rand = new Random();
            for (int i = 0; i < a.length; i++) {
                a[i] = (int) (rand.nextLong()%100); 
            }
            System.out.println("start Array: " + Arrays.toString(a));
            sort.sort(a,0,a.length);
            System.out.println("result Array: " + Arrays.toString(a));
        }
        
        public void sort(int[] a,int m,int n){
            
            if(m != n){
                int i = partition(a,m,n);
                sort(a,m,i);
                sort(a,i+1,n);
            }
        }
        
        public int partition(int[] a,int m,int n){
            
            int x = a[m];
            int i = m;
            
            for(int j=i+1;j<n;j++){
                if(a[j]<=x){
                    i = i+1;
                    exchange(a,i,j);
                }
            }
            exchange(a,m,i);
            return i;
        }
        
        public void exchange(int[] a,int i,int j){
            int temp = 0;
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
    }
  • 相关阅读:
    python 模块包裹
    函数指针
    python界面
    python FileError
    python pickle
    python file
    python set
    python 字典的函数
    字典问题
    java学习笔记4
  • 原文地址:https://www.cnblogs.com/lixusign/p/2464886.html
Copyright © 2011-2022 走看看