冒泡排序核心思想:每次将数组中的最大值放在数组中最后一个位置
优化:在排序的过程判断数组元素的位置有没有交换,如果交换则继续;如果在一次排序中没有发生数组元素交换位置,则说明数组已经有序,停止排序。
代码如下:
package DataStructures.sort; public class BubbleSort { public static void main(String[] args) { int[] nums = {23,25,99,5,1,3}; bubbleSort(nums); print(nums); } public static void bubbleSort(int[] nums){ for( int i = 0; i < nums.length - 1; i++){ boolean flag = false; for( int j = 0; j < nums.length - i - 1; j++){ if( nums[j] > nums[j+1] ){ flag = true; int temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } if( !flag ){ break; } System.out.printf("第%d趟排序:",i+1); print(nums); System.out.println(); } } public static void print(int[] nums){ for( int i = 0; i < nums.length; i++){ System.out.print(nums[i]+" "); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)