冒泡排序
冒泡排序的思想就是两两比较,不断地向数组最后推送剩余数组中的最大值
代码实现以及优化
package com.sort;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class BubbleSort {
public static void main(String[] args) {
int[] array={3, 9, -1, 10, 20};
bubbleSort(array);
System.out.println(Arrays.toString(array));
}
public static void bubbleSort(int[] array){
int temp=0;//作为临时变量
boolean falg=false;//用来判断,当前循环结束后,是否有再判断的必要
int count=0;//记录换位置的次数
for (int i = 0; i <array.length-1 ; i++) {//一共五个数字,要找出四个大的,所以循环四次
for (int j = 0; j <array.length-1-i ; j++) {//每找出一个最大值以后,需要对比的数字数量减少,因为最后的一个不用再参加对比了
if (array[j]>array[j+1]){
count++;//记录次数
falg=true;//记录是否移动位置
temp=array[j+1];
array[j+1]=array[j];//互换位置
array[j]=temp;
}
}
if (falg==false){//如果当前搜有数字都判断完成没有互换位置,
// 则说明当前顺序就是我们想要的,不用在进行判断了
break;
}else {
falg=false;
}
}
}
}