zoukankan      html  css  js  c++  java
  • 冒泡排序

    算法思想:

    算法在每次遍历中,比较连续相邻的元素,如果某一对元素是降序,则互换它们的值,否则,保持不变。就像较小的值像“气泡”一样逐渐浮向顶部,而较大的值沉向底部。

    package introjava;

    public class BubbleSort {
        public static void bubbleSort(int[] list){
            boolean needNextPass = true;
            for(int k = 1; k < list.length && needNextPass; k++){  //k的范围意味着总共需要多少轮结束排序,是1到(length - 1),是因为元素两两相比,因为总共

                                    //有(length - 1)个元素,那么必然需要比较((length - 1) - 1)轮

                needNextPass = false;
                for(int i = 0; i < list.length - k; i++){         //i的范围意味着每轮需要比较的两个元素中下标小的下标,是0到(length - k - 1),比如第一轮中,i的下标                                //是从0到((length - 1) -1),最后一轮k = (length - 1),i从0到(length - (length - 1) - 1)也就是0,                                //所以最后一轮比较list[0]和list[1]。
                    if(list[i] > list[i + 1]){
                        int temp = list[i];
                        list[i] = list[i + 1];
                        list[i + 1] = temp;
                }
            }
            needNextPass = true;
            }
        }
        public static void main(String []args){
            int [] list = {2, 3, 2, 5, 6, 1, -2, 3, 14, 12};
            bubbleSort(list);
            for(int i = 0; i < list.length; i++){
                System.out.print(list[i] + " ");
            }
        }

    }

  • 相关阅读:
    JavaScript高级程序设计-(3) 变量、作用域和内存问题
    JavaScript高级程序设计-(2)基础概念
    JavaScript高级程序设计-(1)html中使用JavaScript
    ASP.NET 一句代码实现批量数据绑定
    C#改善程序的50种方法
    ASP.NET探讨:技术的学习顺序问题
    docker 操作命令
    友盟分享 | 移动大数据平台架构思想以及实践经验
    [MapReduce_3] MapReduce 程序运行流程解析
    [MapReduce_add_3] MapReduce 通过分区解决数据倾斜
  • 原文地址:https://www.cnblogs.com/hansonzhe/p/3595642.html
Copyright © 2011-2022 走看看