冒泡排序属于内部排序,
冒泡排序:每一轮都是相邻的两个数据进行比较,把本轮当中的最大值交换到最后,
依次进行n-1轮
优化:
1.嵌套循环中,j 的值的范围控制由
import java.util.Arrays;
/**
* @author scXu:
* @version 创建时间:2021年5月15日 下午3:32:57
* 冒泡排序-内部排序
*/
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {9,3,4,1,8,6};
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
/**
* 冒泡排序:每一轮都是相邻的两个数据进行比较,把本轮当中的最大值交换到最后,
* 依次进行n-1轮
* 优化:设置一个标志位,如果某轮比较中没有发生交换,则说明排序已经完成,直接跳出循环,排序结束
* */
//方法实现
public static void bubbleSort(int[] arr){
for(int i = 0;i< arr.length-1;i++){
boolean flag = false;
for(int j = 0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
flag = true;
}
}
System.out.println("第"+(i+1)+"轮");
if(flag == false) break;
}
}
}