冒泡排序法
-
冒泡排序法是最出名的排序法之一,总共有八大排序
-
相对简单,两层循环,外层冒泡轮数,里层层次比较
-
看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)
1 package com.Xujie.Day10; 2 3 import java.util.Arrays; 4 5 public class Java10_10 { 6 public static void main(String[] args) { 7 //1. 比较数组中,两个相邻元素,如果第一个数比第二个数大,我们就交换他们的位置 8 //2. 每一次比较,都会产生出一个最大的或者最小的数字 9 //3. 下一轮可以减少一次排序 10 //4. 依次循环,直到结束 11 int[] a = {1, 5, 4, 9, 8, 77, 24, 67,32}; 12 int[] sort = sort(a);//调用完我们自己写的程序后,返回一个排序后的值 13 System.out.println(Arrays.toString(sort)); 14 15 } 16 17 public static int[] sort(int[] array) { 18 //定义临时变量 19 int temp = 0; 20 //外层循环,判断我们这个程序要走多少次 21 for (int i = 0; i < array.length - 1; i++) { 22 boolean flag=false;//通过flag标识减少无意义的比较 23 //内层循环,判断两个数,如果第一个数比第二个数大,则交换两个数 24 for (int j = 0; j < array.length - 1 - i; j++) { 25 if (array[j+1]<array[j]){ 26 temp=array[j]; 27 array[j]=array[j+1]; 28 array[j+1]=temp; 29 flag=true; 30 } 31 } 32 } 33 return array; 34 } 35 }