一、冒泡排序
基本原理
对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都是一次内存循环。当发现相邻两个数据的大小次序不符合时,将这两个数据进行互换(前后两个数据进行比较,两两交换),如果从小到大排序,这时较小的数据就会逐个往前移动(每轮内层循环都会将这一轮中最大数放到最后),好像气泡往上漂浮一样。
下面来看一组动态图
特点
- 升序排序当中每一轮比较会把最大的数沉到最底(这里以从小到大为例)
- 所有相互比较的次数每一轮会比前一轮少一次
代码逻辑和结果
冒泡排序代码如下
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = new int[] {
8,65,41,28,6,1,4,5,32,9,10};
sort(arr);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr) {
for(int i = 0;i<arr.length;i++){
//n轮循环
for