• 我叫:冒泡排序【JAVA】


    1.什么是冒泡排序?

    冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。

    2.来个实战应用 

    我们举一个具体的案例来说明冒泡法。我们将五个无序的数:3,9,-1,10,20使用冒泡排序法将其排成一个从小到大的有序数列。

    3.实战总结

    •  一共进行数组的大小-1次大的循环
    • 每一趟排序的次数在逐渐的减少

    • 每一排序的次数住逐新的减少如果我们发现在某趟排序中,没有发生一次交换,可以提前结束冒泡排序。

    4.代码助力

    1. int[] array = new int[]{3, 9, -1, 10, 2};
    2. for (int i = 0; i < array.length - 1; i++) {
    3. for (int j = 0; j < array.length - i - 1; j++) {
    4. if (array[j] > array[j + 1]) {
    5. int temp = array[j];
    6. array[j] = array[j + 1];
    7. array[j + 1] = temp;
    8. }
    9. }
    10. System.out.println("第"+(i+1)+"趟排序后的顺序:"+Arrays.toString(array));
    11. }
    12. System.out.println("从小到大的排序:"+Arrays.toString(array));
    13. }

    5.优化一下我

    • 每一排序的次数住逐新的减少如果我们发现在某趟排序中,没有发生一次交换,可以提前结束冒泡排序。
    1. boolean flag = false;//标识变量
    2. for (int i = 0; i < array.length - 1; i++) {
    3. for (int j = 0; j < array.length - i - 1; j++) {
    4. if (array[j] > array[j + 1]) {
    5. flag = true;
    6. int temp = array[j];
    7. array[j] = array[j + 1];
    8. array[j + 1] = temp;
    9. }
    10. }
    11. System.out.println("第" + (i + 1) + "趟排序后的顺序:" + Arrays.toString(array));
    12. if (!flag) {//在一趟排序中,没有发生一次交换
    13. break;
    14. } else {
    15. flag = false;//重置
    16. }
    17. }
    18. System.out.println("从小到大的排序:" + Arrays.toString(array));
    19. }

     

  • 相关阅读:
    c语言-快速排序
    线性回归(机器学习)
    WebElement 接口常用方法
    postgres-operator 原理解析- 章节 II 减少failover次数
    工业物联网关-序
    门禁管理:这招我居然才知道,不要太好用!
    Python内置函数--iter()&next()
    Nginx__高级进阶篇之LNMP动态网站环境部署
    【蓝桥杯物联网赛项学习日志】Day1 点亮led
    【TypeScript】带类型语法的JavaScript
  • 原文地址:https://blog.csdn.net/dfdg345/article/details/134412794