zoukankan      html  css  js  c++  java
  • 排序算法之冒泡排序的思想以及Java实现

    1 基本思想
    设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] > A[i]),则交换它们,其结果是将最小的元素交换到待排序序列的第一个位置,我们称它为一趟冒泡。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序序列减少一个元素,每趟冒泡的结果把序列中最小的元素放到了序列的”最前面”。

    2,算法的实现(Java)

    package Algorithm;
    
    public class BubleSort {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};
            System.out.println("排序之前:");
            BubleSort.output(data);
            System.out.println();
            System.out.println("排序之后:");
            BubleSort.buble_sort(data);
            BubleSort.output(data);
        }
    
        public static void buble_sort(int[] arr){
    
            for(int i=0;i < arr.length-1;i++){
                for(int j =0; j < arr.length-i-1;j++){
                    if(arr[j] > arr[j+1]){
                        int temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
        }
    
        //输出打印
        public static void output(int[] arr){
            for(int i=0;i<arr.length;i++){
                    System.out.print(arr[i]+"	");
                }
            }
    
    
    }
    

    得到的结果为:
    这里写图片描述

    3,性能分析

    冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1),它是一种稳定的排序算法。

  • 相关阅读:
    python新建以时间命名的目录
    selenium跳过https的问题
    selenium修改控件属性
    selenium遍历控件集合
    知识库系统confluence5.8.10 安装与破解
    python3 遍历文件
    mysql更新密码为空
    CentOS7下安装配置vncserver
    Centos7搭建php+mysql环境(整理篇)
    centos7上安装与配置Tomcat7(整理篇)
  • 原文地址:https://www.cnblogs.com/cmderq/p/9130855.html
Copyright © 2011-2022 走看看