冒泡排序

冒泡排序是通过不断的比较相邻的两个元素。如果顺序不对,就将他们交换,直到所有的元素都不再需要交换,就完成了排序。

算法描述(以升序为例)

  1. 比较相邻的两个元素,如果第一个大于第二个,就交换它们;
  2. 对每一对相邻元素用1中的方式处理,直到数组的结尾,此时,最大的元素应该在最后边。
  3. 对数组再次用1、2的方式遍历,除了最后一个元素。
  4. 重复1-3,直到排序完成。

算法可以用以下的动图来表示:

算法示意图

算法代码

1
2
3
4
5
6
7
8
9
10
11
public void sort(int[] arr, int n) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n-1-i; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}

微信公众号

© 2018 ray