冒泡排序思路:第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));
}
}
}