美文网首页
冒泡排序

冒泡排序

作者: 萧然_fe14 | 来源:发表于2018-05-14 19:40 被阅读0次

    冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。

    一、算法基本思想

    (1)基本思想

    冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。

    算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。

    (2)运行过程

    冒泡排序算法的运作如下:

    1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

    2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

    3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

    4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

    (3)示例

    java 的如何实现冒泡算法呢?

    其实有两种方法

    一种是正序 

    /*

    * 正序冒泡

    * */

    public static void sortListAsc(Integer[] list){

    if(list.length>0){

    for(int i=0;i

    for(int j=0;j

    int exchange=0;

                    if(list[j]>list[j+1]){

    exchange= list[j+1];

                        list[j+1]=list[j];

                        list[j]=exchange;

                    }

    }

    }

    }

    for(Integer k:list){

    System.out.println(k);

        }

    }

    一种是反序 

    /*

    * 反序冒泡

    * */

    public static void sortListDesc(Integer[] list){

    if(list.length>0){

    for(int i=(list.length-1);i>0;i--){

    for(int j=(list.length-1);j>0;j--){

    int a=0;

                          if(list[j]

    a=list[j-1];

                              list[j-1]=list[j];

                              list[j]=a;

                          }

    }

    }

    }

    }

    虽然实现的目标是相同的,但是实现的原理也一样  只不过流程是逆向的      

    完成之后便是如此   

    如果使用Stiring 字符串的compareTo 也可以是实现类似功能  

    不过这个比较的是字符串的ASCII码值的大小  ,可以应用于数字字符串的比较, 如此冒泡依旧可以使用。

    //实现字符串的冒泡

    public static String[]sortAscII(String[] list){

    if(list.length>0){

    for(int i=(list.length-1);i>0;i--){

    for(int j=(list.length-1);j>0;j--){

    String a="";

                    if(list[j].compareTo(list[j-1])<0 ){

    a=list[j-1];

                        list[j-1]=list[j];

                        list[j]=a;

                    }

    }

    }

    }

    return list;

    }

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/fgiplftx.html