大话数据结构----冒泡排序Bubble sort

Posted Actexpler

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大话数据结构----冒泡排序Bubble sort相关的知识,希望对你有一定的参考价值。

冒泡排序是排序算法中最基础的排序算法;

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换

 

package com.neuedu.java;

public class BubbleSort {
    public static void main(String[] args) {
         int [] arr=new int[]{0,9,5,45,12,94,56,7};
         BubbleSort(arr);
         for(int i=0;i<arr.length;i++){
             System.out.print(arr[i]+" ");
         }
    }
     /*
     *冒泡排序算法
     */
    public static void  BubbleSort(int [] a){
        int count=0;
        int length=a.length;
        for(int i=
0
;i<length-1;i++){
           for(int j=length-2;j>=i;j--){
               if(a[j+1]<a[j]){
                  int tem=a[j+1];
                  a[j+1]=a[j];
                  a[j]=tem;
               }   
               count++;
           }
        }
        System.out.println("总循环次数:"+count);
    }
}

如果待排序数组已经有序,用上面的算法会再完全比较一遍,我们还可以进行改进,也就是当检测到数组已经有序的时候就可以停止了

冒泡排序的优化

package com.neuedu.java;

public class BubbleSort {
    public static void main(String[] args) {
         int [] arr=new int[]{0,9,5,45,12,94,56,7};
         BubbleSort(arr);
         for(int i=0;i<arr.length;i++){
             System.out.print(arr[i]+" ");
         }
    }
     /*
     *冒泡排序算法的优化
     */

    public static void  BubbleSort(int [] a){
        int count=0;  //记录循环次数
        int length=a.length;

        
boolean flag=true; //设置一个标记,判断数组是否已经有序
for(int i=
0
;i<length-1
&&flag
;i++){//数组不有序,继续循环
            
flag=false; //初始值为false
for(int j=length-2;j>=i;j--){
               if(a[j+1]<a[j]){
                  int tem=a[j+1];
                  a[j+1]=a[j];
                  a[j]=tem;
                  
flag=true;  //进行数据交换,说明还不是有序数组

               }   
               count++;
           }
        }
        System.out.println("总循环次数:"+count);
    }
}

以上是关于大话数据结构----冒泡排序Bubble sort的主要内容,如果未能解决你的问题,请参考以下文章

交换排序—冒泡排序(Bubble Sort)

基础篇9 # 排序:冒泡排序(Bubble Sort)插入排序(Insertion Sort)选择排序(Selection Sort)

冒泡排序Bubble_Sort

冒泡排序 (Bubble Sort)

经典排序算法 - 冒泡排序Bubble sort

HDU 5775 Bubble Sort(冒泡排序)