提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
基于int数组的快速排序
/** 来自 n o w j a v a . c o m**/ import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { public static void main(String ags[]) { int a[] = new int[10]; for (int i = 0; i < a.length; i++) { a[i] = new Random().nextInt(10); } quicksort(a, 0, a.length - 1); } static int patition(int[] a, int start, int end) { int pivot = a[start]; List s = new ArrayList(); List l = new ArrayList(); /* 来 自* N o w J a v a . c o m */ for (int j = start + 1; j <= end; j++) { if (a[j] <= pivot) { s.add(a[j]); } else { l.add(a[j]); } } for (int j = 0; j < s.size(); j++) { a[start + j] = (Integer) s.toArray()[j]; } a[start + s.size()] = pivot; for (int j = 0; j < l.size(); j++) { a[s.size() + start + j + 1] = (Integer) l.toArray()[j]; } return start + s.size(); } static void quicksort(int[] a, int start, int end) { if (start < end) { int q = patition(a, start, end); quicksort(a, start, q - 1); quicksort(a, q + 1, end); printa(a, start, end); } }