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),它是一种稳定的排序算法。

  • 相关阅读:
    Sqlserver日期函数应用
    SSRS匿名访问
    SSAS动态添加分区(一)
    BI就是报表?
    CreateEvent函数/多线程/c++
    字符编码介绍
    Win7 64下Visual C++ 6.0不兼容
    Winpcap安装,Cannot open include file 'pcap.h'
    PPT开发 * .pps 文件类型
    Visual Assist X 工具栏不显示 toolbar
  • 原文地址:https://www.cnblogs.com/bjgua/p/6907661.html
Copyright © 2011-2022 走看看