package quickSort;
import java.util.ArrayList;
import java.util.Scanner;
public class QuickSort {
public static int Partition(ArrayList<Integer> arrayList, int low, int high) {
int i = low, j = high;
int tmp = arrayList.get(low);
while(i < j) {
while(i < j && arrayList.get(j) >= tmp) --j;
if(i < j) arrayList.set(i, arrayList.get(j));
while(i < j && arrayList.get(i) <= tmp) ++i;
if(i < j) arrayList.set(j, arrayList.get(i));
}
arrayList.set(i, tmp);
return i;
}
public static void quickSort(ArrayList<Integer> arrayList, int low, int high) {
if(low < high) {
int part = Partition(arrayList, low, high);
quickSort(arrayList, low, part - 1);
quickSort(arrayList, part + 1, high);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
ArrayList<Integer> arrayList = new ArrayList<Integer>(); //定义一个ArrayList,存数组
System.out.println("输入待排序数组长度");
int length = scan.nextInt(); //输入待排序数组长度
System.out.println("输入待排序数组:");
for(int i = 0; i < length; ++i) //输入待排序数组
arrayList.add(scan.nextInt());
quickSort(arrayList, 0, arrayList.size() - 1);
System.out.println("输出带排序数组");
for(Integer a : arrayList) //输出带排序数组
System.out.print(a + " ");
}
}
快速排序
最新推荐文章于 2021-07-24 23:27:25 发布