冒泡排序:在一组序列中,相邻的两个元素两两相比,若两元素之间的次序不符合要排列的规则(升序或降序),则将两元素的位置进行交换,直至没有次序相反的元素。
【例】(以升序为例):
每一轮排序详解:
第一轮比较结束后得到新的一组序列,然后以同样的方法在新得到的序列中开始第二轮比较,一直循环比较下去,直至所有元素的次序大小满足要求。
代码实现:
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = new int[] {5,7,2,9,10,4,8,0,3,1};
bubblesort(arr);
System.out.println(Arrays.toString(arr));
}
public static void bubblesort(int[] arr) {
//共比较多少轮
for (int i = 0; i < arr.length - 1; i++) {
//比较的次数
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
}