Java之冒泡排序和快速排序

冒泡排序

public class bubbleSort { public static void main(String[] args) { int n = 5; int[] a = new int[n]; for(int i=0; i suiJi = suiJi(); System.out.println(suiJi); java.util.Collections.sort(suiJi); System.out.println(suiJi); } private static ArrayList suiJi() { ArrayList list = new ArrayList<>(); for(int i=0; i<5; i++) { String chars = "abcdefghijklmnopqrstuvwxyz"; list.add(chars.charAt((int)(Math.random() * 26))); }return list; } private static void bubbleSort(int[] a) { for(int i=1; ia[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } System.out.println(Arrays.toString(a)); } }

快速排序
public class QuickSort01 { public static void main(String[] args) {int[] a = new int[6]; for (int i = 0; i < a.length; i++) { a[i] = new Random().nextInt(100); } System.out.println(Arrays.toString(a)); sort(a, 0, a.length - 1); System.out.println(Arrays.toString(a)); } private static void sort(int[] a, int lowIndex, int highIndex) {int low = lowIndex; int high = highIndex; if (low < high) { int pivot = a[low]; while (low < high) { while (a[high] >= pivot && low < high) { high--; } a[low] = a[high]; while (a[low] < pivot && low < high) { low++; } a[high] = a[low]; } a[low] = pivot; System.out.println(lowIndex); System.out.println(highIndex); //快速排序低位或高位每次递归都是变化的,所以每次递归要重新赋值给方法内部的新low和新high sort(a, lowIndex, low - 1); sort(a, low + 1, highIndex); } } }

    推荐阅读