快速排序找数列最大值-Java

import java.util.Scanner;

public class Main {
     

    private static void quicksort(int[] array,int low,int high){
     
        int left = low;
        int right = high;
        int temp = array[low];   //基准
        int t;
        if(left>right){
     
            return;
        }
        while(right>left){
     
            while (temp <= array[right] && left < right){
         //从右边找到一个小于基准的数
                right--;
            }
            while (temp >= array[left] && left < right){
         //从左边找到一个大于于基准的数
                left++;
            }
            if(left < right){
     
                t = array[left];
                array[left] = array[right];
                array[right] = t;
            }
        }
        array[low] = array[left];
        array[left] = temp;
        quicksort(array,low,right-1);
        quicksort(array,left+1,high);
    }

    public static void main(String[] args){
     
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] a = new int[n+1];
        long count = 0;
        for(int i = 0;i < n; i++){
     
            a[i]=scanner.nextInt();
            count = count +a[i];
        }
        quicksort(a,0,n-1);
        System.out.println(a[n-1]);
        System.out.println(a[0]);
        System.out.println(count);
    }
}

你可能感兴趣的:(算法基础,算法)