Java的经典冒泡排序算法解析
算法思想:两两比较,并将更大的值交换顺序后移,就像冒泡,每次比较排序将更大的值后移。
代码如下:
public class Maopao { public static void main(String[] args) { int[] nums={2,7,25,13,6,8}; printArr(nums); System.out.println("最初顺序"); int[] result=bubbleSort(nums); printArr(result); System.out.println("最后结果"); } private static int[] bubbleSort(int[] nums){ int len=nums.length; if(len==0||len==1){ return nums; } for(int i=0;i<len;i++){ for(int j=0;j<len-1-i;j++){ if(nums[j]>nums[j+1]){ int tmp=nums[j]; nums[j]=nums[j+1]; nums[j+1]=tmp; } } printArr(nums); System.out.println("第几次排序"+ i); } return nums; } private static void printArr(int[] nums){ for(Integer item:nums){ System.out.print(item+";"); } } }
执行结果如下:
2;7;25;13;6;8;最初顺序
2;7;13;6;8;25;第几次排序0
2;7;6;8;13;25;第几次排序1
2;6;7;8;13;25;第几次排序2
2;6;7;8;13;25;第几次排序3
2;6;7;8;13;25;第几次排序4
2;6;7;8;13;25;第几次排序5
2;6;7;8;13;25;最后结果