经典排序之冒泡排序

来源:互联网 发布:阿里云服务器亚马逊 编辑:程序博客网 时间:2024/05/18 04:00

冒泡排序算法的原理:

1.比较相邻的两个数,如果如果第一个比第二个大,就交换两个数,小的放前面,大的放后面。

2.每一对相邻的元素做相同的工作,从第一对到最后一对,这样最后的元素就是最大的数。

3.以上两步就完成了第一趟排序,把最大数的放在了最后。这样下一趟排序就不需要再比较最后一个元素了。

4.对越来越少的元素重复以上步骤,直到排序完成。

举例说明:需要排序的数组 int [ ] a = {6,23,15,3,1};

public class MyTest {    public static void main(String[] args) {        int[] a = {6, 23, 15, 3, 1};        bubbleSort(a);    }    /**     * 冒泡排序     *     * @param a     */    private static void bubbleSort(int[] a) {        System.out.println("原数组:");        printArray(a);        for (int i = 1; i < a.length; i++) {            System.out.println("第" + i + "趟排序:");            for (int j = 0; j < a.length - i; j++) {                if (a[j] > a[j + 1]) {                    int temp = a[j];                    a[j] = a[j + 1];                    a[j + 1] = temp;                }                printArray(a);            }        }    }    /**     * 打印数组     *     * @param a     */    private static void printArray(int[] a) {        for (int i : a) {            System.out.print(i + "\t");        }        System.out.println();    }} 


为了更好的理解冒泡排序的工作原理在代码里打印了排序的过程:

第1趟排序:

第一次排序:6和23比较,6小于23,不交换位置,结果:6  23  15  3  1

第二次排序:23和15比较,23大于15,交换位置,结果:6  15  23  3  1

第三次排序:23和3比较,23大于3,交换位置,结果:6  15  3  23  1

第四次排序:23和1比较,23大于1,交换位置,结果:6  15  3  1  23

至此,第一趟排序完成了,将最大的数排到了最后,之后重复比较步骤,就不需要再比较最后一个元素了。

第2趟排序:

第一次排序:6和15比较,6小于15,不交换位置,结果:6  15  3  1  23

第二次排序:15和3比较,15大于3,交换位置,结果:6  3  15  1  23

第三次排序:15和1比较,15大于1,交换位置,结果:6  3  1  15  23

第3趟排序:

第一次排序:6和3比较,6大于3,交换位置,结果:3  6  1  15  23

第二次排序:6和1比较,6大于1,交换位置,结果:3  1  6  15  23

第4趟排序:

第一次排序:3和1比较,3大于1,交换位置,结果:1  3  6  15  23

到这里排序就全部完成了,总结一下N个数字的排序,要进行N-1趟排序,每一趟找出最大值,所以每 i 趟的比较次数为 (N-i)次。优点是每趟都会减少一定的算法量。

这里只是简单的记录一下冒泡排序。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为p9连接热点忘了密码怎么办 苹果手机用联通卡信号不好怎么办 魅族手机充电口松了怎么办 华为手机刷机失败开不了机怎么办 华为刷机失败开不了机怎么办 银行卡信息被盗密码被改该怎么办 全民k歌手机话筒有杂音怎么办 手机刷机清除数据需要密码怎么办 oppo手机屏锁密码忘了怎么办 华为手机摔了一下开不了机怎么办 华为v9手机删除隐私空间了怎么办 华为荣耀畅玩5x卡顿怎么办 淘宝买家收到货后恶意退款怎么办 手机淘宝申请退款后不想退了怎么办 买房交首付时的收据发票掉了怎么办 苹果商城消费提示问题忘记了怎么办 psd文件超过2g不能存储怎么办 手机拍的照片做微信头像太大怎么办 上传的照片在等待中传不上去怎么办 淘宝购物车里的图片模糊怎么办 天猫超市一箱饮料少两瓶怎么办 网上卖一件代发顾客要退货怎么办 京东买东西卖家拒绝发货怎么办 淘宝不小心退款给买家了怎么办 不小心智能清理了淘宝物流怎么办 移动卡绑定了太多东西换联通怎么办 淘宝上卖出的东西快递弄丢了怎么办 京东第三方不确认收货怎么办? 天猫评价被判定为广告怎么办 天猫一个订单用卷分单退货怎么办 天猫对已付款成功后自动退款怎么办 拼多多新人红包减价卖家怎么办 魔力宝贝手机版注册人数已满怎么办 买家投诉虚假签收淘宝卖家该怎么办 手机淘宝商家老打骚扰电话怎么办 手机上查询详单忘记服务密码怎么办 淘宝上的东西买过就找不到了怎么办 刚刚开的淘宝企业店没有流量怎么办 有图片怎么在淘宝找不到商品怎么办 白色高跟鞋鞋面磨脏了怎么办弄干净 我跟鞋后跟磨烂的脚怎么办?