冒泡排序
-
冒泡排序无疑是最为出名的排序算法之一,共有八大排序
-
冒泡排序程序代码比较简单,两层循环,外层循环控制冒泡轮数,里层循环进行比较
-
冒泡排序程序案例:
public class BubbleSort { public static void main(String[] args) { int[] ints = {23,4567,9,86,34,962,7,89,0,65,42,37}; // 降序排序 System.out.println("========1、降序排序========"); sort(ints, "DESC"); System.out.println(Arrays.toString(ints)); // 升序排序 System.out.println("========2、升序排序========"); sort(ints, "ASC"); System.out.println(Arrays.toString(ints)); } // 冒泡排序思路解析(降序): // 1、数组中元素比较,两个相邻的元素进行比较,如果第一个元素数值比第二个元素数值大(或者小),则将两个元素的位置进行交换 // 2、每一次的元素数值比较,都会产生一个最大元素数值,或最小元素数值 // 3、下一轮则可以少一次排序操作 // 4、依次循环,直到排完所有元素顺序 public static void sort(int[] ints, String orderBy){ // 外层循环,判断需要走多少轮 for (int i = 0; i < ints.length - 1; i++) { // 内存循环,比较两个元素数值,无果第一个数比第二个数大,则交换位置 // 此处需要减i,因为每排完一个数值,下次就不需要在对其进行排序了 for (int j = 0; j < ints.length -1 - i; j++) { // 降序 if ("DESC".equals(orderBy)) { if(ints[j + 1] > ints[j]){ int temInt = ints[j]; ints[j] = ints[j + 1]; ints[j + 1] = temInt; } } // 升序 if ("ASC".equals(orderBy)) { if(ints[j + 1] < ints[j]){ int temInt = ints[j]; ints[j] = ints[j + 1]; ints[j + 1] = temInt; } } } } } } // -------------------------------------- // 控制栏输出打印: /** ========1、降序排序======== [4567, 962, 89, 86, 65, 42, 37, 34, 23, 9, 7, 0] ========2、升序排序======== [0, 7, 9, 23, 34, 37, 42, 65, 86, 89, 962, 4567] */