数组排序是数组操作常用操作之一,通过排序将数组中原来顺序按照升序(从小到大)或降序(从大到小)重新组织。数组排序算法很多,最常用的是冒泡排序。本文演示冒泡排序算法,下面以升序排序为例讲解。
冒泡排序可以理解为需要若干趟相邻元素交换,每趟交换的结果是最大元素排在最后。以下面包含10个元素数组为例。
5
7
2
9
4
0
8
6
3
1
每一趟相邻元素交换,原则是前者大于后者,则将两者交换,否则不动。
第一趟:10个元素相邻比较需要9次。最终9排在最后
5
7
2
9
4
0
8
6
3
1
5
7
2
9
4
0
8
6
3
1
5
2
7
9
4
0
8
6
3
1
5
2
7
9
4
0
8
6
3
1
5
2
7
4
9
0
8
6
3
1
5
2
7
4
0
9
8
6
3
1
5
2
7
4
0
8
9
6
3
1
5
2
7
4
0
8
6
9
3
1
5
2
7
4
0
8
6
3
9
1
5
2
7
4
0
8
6
3
1
9
第二趟:前9个相邻元素参与比较(因为最后一个已是最大的了,不需要参与)需要8次,最终8排在9之前。
依次类推,每趟相邻元素比较得互剩余元素最大元素放上趟排序得到最大元素之前,因此需要9次。
代码如下:
publicstaticvoidmain(String[]args) {
int[]arr={5,7,2,9,4,0,8,6,3,1};
for(inti=0;i
for(intj=i;j
if(arr[j]>arr[j+1]){
intt=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
for(inti=0;i
System.out.print(arr[i]+" ");
}
}