冒泡排序 (选择排序,二分查找等算法请看我博客个人分类--算法)
需求:把最大值放在倒数第一个位置
冒泡排序原理: 相邻两个元素比较一次,符合条件的交换位置
class Demo2 { public static void main(String[] args) { int[] arr = {37,21,24,11,31}; //test(arr); bubbleSort(arr); System.out.println(Arrays.toString(arr)); } //冒泡排序 public static void bubbleSort(int[] arr){ for(int i =0;i<arr.length-1;i++){ for(int j = 0;j<arr.length-1-i;j++){ //比较当前元素与右边相邻元素 if(arr[j]>arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } public static void test(int[] arr){ //最大的放在最后一位 for(int i = 0;i<arr.length-1;i++){ //比较当前元素与右边相邻元素 if(arr[i]>arr[i+1]){ int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } //第二大的冒泡到倒数第二个位置 for(int i = 0;i<arr.length-1-1;i++){ if(arr[i]>arr[i+1]){ int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } //第三大的冒泡到倒数第三个位置 for(int i = 0;i<arr.length-1-2;i++){ if(arr[i]>arr[i+1]){ int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } //第四大的冒泡到倒数第四个位置 for(int i = 0;i<arr.length-1-3;i++){ if(arr[i]>arr[i+1]){ int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } } }
