A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘武洲 初级黑马   /  2018-10-6 12:31  /  963 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

作为Java基础班,国庆前刚结束day6课程的小白学员,在通往程序员的征程上,可以说还没有完全迈开步伐,处于整理衣装,准备干粮的阶段。真的不敢说自己发的是什么技术贴,作为编程新人的学习分享吧,希望各位大神多多批评指教。
言归正传,今天给大家分享的是数组排列中比较常用的一种算法--冒泡排序。(本帖参考了书籍《Java从入门到精通》)
1.冒泡排序:
指将数组中的元素进行重新排序,使得小数在前,大数在后,类似水中气泡往上升的动作。
2.冒泡排序的基本思想:
对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面(即交换两个元素的位置),该动作一次进行,最后使得整个数组中的所有元素达到从小到大的排列效果。
3.计算过程:
该算法由双层循环实现,其中外层循环用于控制排序轮数(分析,轮数应为数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比);而内层循环用于对比临近元素的大小,以确定是否需要交换位置(对比和交换次数随着排序轮数一次减少,因为每一轮的排序都能确定需要对比的元素中的最大值,并且将它排到正确的位置,下一轮对比中,它不需要继续参与)。过程如图(附件)
4.算法实现:
public class Bubblesort {
    public static void main(String[] args) {
        int[] array = {63, 4, 24, 1, 3, 15};
        for (int i = 1; i < array.length; i++) {//比较两个相邻的元素,较大的数往后冒泡
            for (int j = 0; j < array.length - i; j++) {
                if (array[j] > array[j + 1]) {//使用一个临时变量进行位置互换
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }

            }

        }//重新遍历排序结果
        System.out.println("冒泡排序的结果:");
        for (int k = 0; k < array.length; k++) {
            System.out.println(array[k]);

        }
    }
}




数组排列过程.png (28.97 KB, 下载次数: 2)

数组元素排序过程

数组元素排序过程

1 个回复

倒序浏览
第一次使用画图功能,画得比较拙劣,大家见谅。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马