zoukankan      html  css  js  c++  java
  • 冒泡排序

    给一组数字,要求从小到大排序;

    1.时间复杂度  O(n2) ,空间复杂度 O(n+1);

    2.基本思想:两个数比较大小,较小的数下沉,较大的数冒起来;

    3.冒泡过程:  

               1.从第零个位置开始,第零个位置的数和第一个位置的数比较,大的交换到第一个位置(冒出来);然后第一个位置的数和第二个位置上的数比较大小,大的数交换到第二个位置(冒出来);

                 依次类推,遍历到倒数第二个数的时候,最大的值就冒出来了,排在最后的位置;

               2.然后排序剩余的数;以为最后以为已经是最大的了,不需要改变,所以只排序剩余的数;

    4.代码:

    public void bubbleSort(int[] array, int length){
            //排序的趟数,如果2个数,需要排1次,所以排序趟数为length - 1;
            for(int i = 0; i < length - 1; i++) { 
                //冒泡的过程
                for(int j = 0; j < length - 1 - i; j++) {
                    if(array[j] > array[j + 1]){
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
        }

     5.优化:如果已经有序,冒泡排序依然进行;设置一个标志位,如果冒泡过程中没有交换位置,证明已经有序,结束排序;

    public void bubbleSort1(int[] array, int length){
            //标志位,如果冒泡的过程没有发送交换,证明已经有序,结束排序;
            Boolean flag;
            //排序的趟数,如果2个数,需要排1次,所以排序趟数为length - 1;
            for(int i = 0; i < length - 1; i++) {
                //冒泡的过程
                flag = false;
                for(int j = 0; j < length - 1 - i; j++) {
                    if(array[j] > array[j + 1]){
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                        flag = true;
                    }
                }
                if(!flag) {
                    break;
                }
            }
        }

          

               

  • 相关阅读:
    WordPress研究心得
    Java之生成Pdf并对Pdf内容操作
    Java之生成条形码、PDF、HTML
    Redis口令设置
    Redis启动问题解决方案
    网狐6603手机棋牌游戏源码.rar
    LNK1179 无效或损坏的文件: 重复的 COMDAT“_IID_IDispatchEx”
    c++转C#
    error LNK1281: 无法生成 SAFESEH 映像 LNK2026 模块对于 SAFESEH 映像是不安全的 VS2015 /win10
    当两行的数据一样时,要删除一行的正则表达式解决办法。
  • 原文地址:https://www.cnblogs.com/smailjunk/p/10441659.html
Copyright © 2011-2022 走看看