十大排序算法-----冒泡排序

冒泡排序

简单介绍:

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:这是我的第一篇博客,以后就在这里记录学习了!啊哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值