package com.sort; public class SortUtils { /** * 冒泡排序 * @param arr 排序数组 */ public static void bubbleSort(int[] arr){ //标识是否交换 Boolean flag = false; //表示趟数,一共arr.length-1趟 for (int i = 0; i <arr.length-1 ; i++) { for (int j = 0; j <arr.length-i-1 ; j++) { if(arr[j] > arr[j+1]){ swap(arr, j, j+1); flag = true; } } //判断此趟是否交换数据,若没有交换数据,说明已是排序数组,跳出循环;否则继续 if(!flag) break; } } /** * 交换数组中的两个数 * @param arr 交换数组 * @param i 交换数组的下标i * @param j 交换数组的下标j */ public static void swap(int[] arr, int i, int j){ int temp; temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } /** * 遍历数组 * @param arr 遍历数组 */ public static void traversal(int[] arr){ System.out.print("arr["); for (int i = 0; i < arr.length; i++) { if(i < arr.length-1){ System.out.print(arr[i] + ", "); }else { System.out.print(arr[i]); } } System.out.println("]"); } /** * 主函数测试 * @param args */ public static void main(String[] args) { int[] arr = {32,1,3,4,5,35,34,23,4,7}; bubbleSort(arr); traversal(arr); }
}
运行结果: