冒泡排序思路:第1次:顺序比较从第0个到第len个(相邻两个)元素并把大的放后面,第一次进行完后,最大 的元素会在最后;
第2次:顺序比较从第0个到第len-1个(相邻两个),因为最大的已经定位置了,不需要参与比 较,即只需要循环len-2次,这样倒数第二大的就定在了倒数第二个位置。。。。
package com.sheepmu.text; import java.util.Arrays; import java.util.Comparator; /* * @author sheepmu */ public class Sort { public static void main(String[] args){ int[] arr={38,5,19,26,49,97,1,66}; bubbleSort(arr); } public static void bubbleSort(int[] arr){ System.out.println("原来顺序----->"+Arrays.toString(arr)); int len=arr.length; int flag=1; int temp=0; for(int n=1;n<len&&flag==1;n++){//n表示次数 flag=0; for(int i=0;i<len-n;i++){//第一次时,循环进行len-1次,把最大的放到了最后。第2次时,把最大的2个放到了最后,只需要循环前len-2个就行咯。 if(arr[i]>arr[i+1]){ flag=1;//表示还有元素的移动。 temp=arr[i+1]; arr[i+1]=arr[i]; arr[i]=temp; } } System.out.println("第"+n+"次排序----->"+Arrays.toString(arr)); } } }