博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡排序
阅读量:2494 次
发布时间:2019-05-11

本文共 1212 字,大约阅读时间需要 4 分钟。

冒泡排序

思想

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢到数列的顶端,故名。

实例

package com.mylearn.algorithm.sort;

import org.apache.commons.lang.xwork.StringUtils;

/**

 * Created by IntelliJ IDEA.

 * User: yingkuohao

 * Date: 13-9-9

 * Time: 上午11:19

 * CopyRight:360buy

 * Descrption: 冒泡排序,循环比较,循环一次,找到一个最大的沉底,时间复杂度n*n

 * To change this template use File | Settings | File Templates.

 */

public class BubboSort {

    public static void main(String args[]) {

        Integer[] integers = new Integer[]{12, 15, 9, 24, 6, 31};

        BubboSort bubboSort = new BubboSort();

        System.out.println("初始:" + StringUtils.join(integers, ","));

        bubboSort.execute(integers);

        System.out.println("结果:" + StringUtils.join(integers, ","));

    }

    /**

     * 冒泡排序

     * @param objects

     */

    public void execute(Integer[] objects) {

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

            //注意i的范围,最大为长度-1,否则下边的j+1会溢出

            for (int j = 0; j < i; j++) {

            //循环比较,每轮找到一个最大值直至沉底。

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

                    //如果j>j=1,则交换

                    swap(objects,j,j+1);

                }

            }

        }

    }

    /**

     * 交换

     * @param integers

     * @param i

     * @param j

     */

    private void swap(Integer[] integers, Integer i,Integer j) {

        Integer tmp = integers[i];

        integers[i] = integers[j];

        integers[j] = tmp;

    }

}

转载地址:http://zzrrb.baihongyu.com/

你可能感兴趣的文章
Desktop OS Market Share: Windows 90% - Mac 9% - Linux 1%
查看>>
【洛谷P2023】维护序列
查看>>
修复 XE7 , XE8 Frame 内 PopupMenu 快捷键失效问题
查看>>
黑马-程序员C#泛型简介
查看>>
第四章
查看>>
Eclipse is running in a JRE, but a JDK is required 解决方法(转)
查看>>
windows符号服务器地址
查看>>
Sql Server 中存储过程的output return的区别
查看>>
debian 9 安装后的配置,debian 9 开发环境。
查看>>
数据结构——各排序算法的比较
查看>>
IrregularGridCollectionView处理不定宽度的标签cell
查看>>
sql查询
查看>>
缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例
查看>>
数据库设计三大范式【转载】
查看>>
隐藏与禁用硬盘分区——利用工具或注册表
查看>>
aggregations 详解1(概述)
查看>>
锁优化
查看>>
[deviceone开发]-do_SlideListView的简单示例
查看>>
动态规划(五) 最大连续子序列和(Maximum Continuous Subsequence Sum)
查看>>
Java 1.8 HashMap源码探究
查看>>