冒泡排序
简单介绍:
1,十大排序之一
2,我自认为的原理:比较
冒泡排序:比如总共8个数字 3 4 7 5 8 9 1 2 用冒泡排序 就是先让3 4 比 然后 如果前面一个元素比后一个大 就让他俩换位置 (按升序)那么原来第一个元素 就变为啦第二个元素 然后 第二个元素 和第三个元素比较 相同的方法 这样比较一轮后 最后一个就是最大的 但此时整个序列还不是 升序排列 只是最后一个是最大的 这时可以吧数组看做有8个无序元素
核心代码还是两个for循环
第一个是控制循环次数
第二个是控制交换次数
看代码:
package 十大排序;
import java.util.Arrays;
public class bubble_Sort {
public void sort(int[] arr,int n) {
//先判断只有一个元素的情况
if (n <= 1)
return;
for (int i = 0; i < n; i++) {
//就是如果数据已经有序了,就没必要在进行排序,浪费内存
boolean flag = false;
for (int j = 0; j < arr.length-i-1; j++) {
//如果前面一个数大于后面的数 交换!!!
if (arr[j] > arr[j + 1]) {
//定义一个temp 进行辅助交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
//如果数据没交换,或者本来就是有顺序的 直接退出
if (!flag) {
break;
}
}
}
public static void main(String[] args) {
int[] arr = {1,3,2,6,4,7,0};
bubble_Sort bubble = new bubble_Sort();
bubble.sort(arr, arr.length);
//快速打印数组的方法
System.out.println(Arrays.toString(arr));
}
}
注意:冒泡排序指的是由小到大,不是由大到小!!!
ps:这是我的第一篇博客,以后就在这里记录学习了!啊哈哈