java 快速排序

xiaoxiao2021-02-28  22

import java.util.*;

public class test {

    public static void sort(int a[], int low, int hight) {         int i, j, index;         if (low > hight) {             return;         }         i = low;         j = hight;         index = a[i]; // 用子表的第一个记录做基准         while (i < j) { // 从表的两端交替向中间扫描             while (i < j && a[j] >= index)                 j--;             if (i < j)                 a[i++] = a[j];// 用比基准小的记录替换低位记录             while (i < j && a[i] < index)                 i++;             if (i < j) // 用比基准大的记录替换高位记录                 a[j--] = a[i];         }         a[i] = index;// 将基准数值替换回 a[i]         sort(a, low, i - 1); // 对低子表进行递归排序         sort(a, i + 1, hight); // 对高子表进行递归排序     }     public static void quickSort(int a[]) {         sort(a, 0, a.length - 1);     }     public static void main(String[] args) {         int a[],len;         Scanner in=new Scanner(System.in);        System.out.println("输入长度");       len=in.nextInt();      a=new int[len];      for(int i=0;i<len;i++)    {        a[i]=in.nextInt();    }         quickSort(a);         System.out.println(Arrays.toString(a));     } }
转载请注明原文地址: https://www.6miu.com/read-2629493.html

最新回复(0)