码迷,mamicode.com
首页 > 编程语言 > 详细

八大排序之冒泡排序

时间:2018-06-05 00:45:44      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:dom   image   static   boolean   help   font   color   gen   alt   

一、基本思想

 冒泡排序是一种基于数值交换的排序,从第一个元素开始,与后面紧接着的一个元素比较,如果当前这个数更大,则交换两者的数值,那么值更大的元素就像泡泡一样往后走。第n趟排序即可使第n大元素从前往后走。进行n-1次这样的"冒泡操作"后,整个序列就有序了。

二、实现代码

 

public class BubbleSort implements ISort{
    
    public void sort(int[] a) {
        for(int i = 0; i <= a.length - 3; i++) {
            boolean isInOrder = true;
            for(int j = 0; j <= a.length-2-i; j++) {
                if(a[j] > a[j+1]) {                             //比较大的数往后面走
                    int t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                    isInOrder = false;
                }
            }
            if(isInOrder) {                                     //如果某一次循环冒泡没有发生交换,则表明数组已经有序了
                break;
            }
        }
    }
    
    public static void main(String[] args) {
        int[] array = RandomArrayGenerator.getRandomArray(100 , 30);
        SortTestHelper.test(new BubbleSort() , array);
    }

 

三、测试结果

 技术分享图片

 

四、总结分析

 时间复杂度:O(n2)

 空间复杂度:O(1)

 稳定性:稳定

 冒泡排序实现简单,直观易懂,且是稳定的排序算法,但时间复杂度不够理想。

八大排序之冒泡排序

标签:dom   image   static   boolean   help   font   color   gen   alt   

原文地址:https://www.cnblogs.com/wanghang-learning/p/9135015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!