冒泡排序,不断的遍历数组,若
相邻两元素A[i]>A[i+1],则将
A[i]与A[i+1]交换。
代码实现:
public class BubbleSort {
public static void main(String[] args) {
int[] arr={7,6,4,9,0,5,2,8,3,1};
bubbleSort(arr);
}
public static void bubbleSort(int[] arr){
for(int i=1;i<arr.length;i++)
int flag=0;
for(int j=0;j<arr.length-i;j++)
if(arr[j]>arr[j+1]){
ArrayUtils.exchangeElements(arr,j,j+1);
flag=1;
}
ArrayUtils.printArray(arr);
}
if(flag==0) break;
}
}
}
class ArrayUtils{
public static void printArray(int[] arr){
for(int element:arr){
System.out.print(element+" ");
}
System.out.println();
}
public static void exchangeElements(int[] arr,int index1,int index2){
int temp;
temp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=temp;
}
}
过程展示:
6 7 4 9 0 5 2 8 3 1
6 4 7 9 0 5 2 8 3 1
6 4 7 9 0 5 2 8 3 1
6 4 7 0 9 5 2 8 3 1
6 4 7 0 5 9 2 8 3 1
6 4 7 0 5 2 9 8 3 1
6 4 7 0 5 2 8 9 3 1
6 4 7 0 5 2 8 3 9 1
6 4 7 0 5 2 8 3 1 9
4 6 7 0 5 2 8 3 1 9
4 6 7 0 5 2 8 3 1 9
4 6 0 7 5 2 8 3 1 9
4 6 0 5 7 2 8 3 1 9
4 6 0 5 2 7 8 3 1 9
4 6 0 5 2 7 8 3 1 9
4 6 0 5 2 7 3 8 1 9
4 6 0 5 2 7 3 1 8 9
4 6 0 5 2 7 3 1 8 9
4 0 6 5 2 7 3 1 8 9
4 0 5 6 2 7 3 1 8 9
4 0 5 2 6 7 3 1 8 9
4 0 5 2 6 7 3 1 8 9
4 0 5 2 6 3 7 1 8 9
4 0 5 2 6 3 1 7 8 9
0 4 5 2 6 3 1 7 8 9
0 4 5 2 6 3 1 7 8 9
0 4 2 5 6 3 1 7 8 9
0 4 2 5 6 3 1 7 8 9
0 4 2 5 3 6 1 7 8 9
0 4 2 5 3 1 6 7 8 9
0 4 2 5 3 1 6 7 8 9
0 2 4 5 3 1 6 7 8 9
0 2 4 5 3 1 6 7 8 9
0 2 4 3 5 1 6 7 8 9
0 2 4 3 1 5 6 7 8 9
0 2 4 3 1 5 6 7 8 9
0 2 4 3 1 5 6 7 8 9
0 2 3 4 1 5 6 7 8 9
0 2 3 1 4 5 6 7 8 9
0 2 3 1 4 5 6 7 8 9
0 2 3 1 4 5 6 7 8 9
0 2 1 3 4 5 6 7 8 9
0 2 1 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9