• 快速排序(升序)


    1、算法

    通过一趟排序将要排序的数据分割成独立的两部分,其中左边的部分的所有数据都比右边的部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

    2、算法实现

        package test;  
          
        public class QuickSort {  
            public static void main(String[] args) {  
                int[] n ={1,3,6,2,9,6,8,7};  
                quicksort(n,0,7);  
                for (int i : n) {  
                    System.out.print(i+"	");  
                }  
                  
            }  
            public static void quicksort(int[] n,int left,int right){  
                int dp;  
                if(left<right){  
                    dp = partition(n,left,right);  
                    quicksort(n,left,dp-1);  
                    quicksort(n,dp+1,right);  
                }  
            }  
            public static int partition(int[] n,int left,int right) {  
                int pivot = n[left];  
                while(left<right){  
                    while(left<right&&n[right]>=pivot)  
                        right--;  
                    if(left<right)  
                        n[left++]=n[right];  
                    while(left<right&&n[left]<=pivot)  
                        left++;  
                    if(left<right)  
                        n[right--]=n[left];  
                }  
                n[left]=pivot;  
                return left;  
          
            }  
        }  
  • 相关阅读:
    五一集训——图论
    Luogu P3942 将军令
    8.14 Round 1
    8.10 Round 1
    8.9 Round 1
    8.7 Round 2
    8.7 Round 1
    8.6 Round 1
    8.5 Round 2
    FHQ-Treap
  • 原文地址:https://www.cnblogs.com/zhangzhiqian/p/5928796.html
Copyright © 2020-2023  润新知