冒泡排序

冒泡排序(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;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 冒泡排序 升序 20 90 13 88 1 15 40 20 13 88 1 15 40 ...
    妈妈说喝牛奶能长个阅读 1,943评论 0 1
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 8,519评论 0 19
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • 现在的人啊,是个不断轮回的矛盾体 小时候以心交人,善恶直白于嘴边。 青春时喜欢造作的文字,要告诉整个世界你的进入 ...
    find不到的超人阅读 1,222评论 0 0
  • 昨天晚深夜一人骑小电驴去某个地方,很远,无奈迷失了方向,于是凭感觉一直骑啊骑,那时差不多10:45左右,周边的...
    素人随笔阅读 1,514评论 0 3