首页 > 编程语言 > 详细

算法 ——— 冒泡排序(JAVA)

时间:2020-03-26 10:28:33      阅读:81      评论:0      收藏:0      [点我收藏+]

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

冒泡排序的时间复杂度
(一)最优时间复杂度:O(n)(表示遍历一次发现没有任何可以交换的元素,排序结束)
(二)最坏时间复杂度:O(n^2)
(三)稳定性:稳定

所谓的冒泡排序就先前一个和后一个进行比较,如果前一个比后一个小或者前一个比后一个大 就他们交换位置。

例如: int[ ] a = {5,3,1,7} 这个数组,我们要他升序排列。我们可以拿5 跟 3 比较 ,我们就让5 和 3 交换位置。依次比下去,如果满足条件我们就让他们交换位置,不满足则继续向下比较。

  7个元素要进行比较6次。

  6个元素要进行比较5次。

  5个元素要进行比较4次。

所以我们可以得出结论 比较次数等于数组的长度-1。

每次都要有就 j < i 比较 

代码如下

public class  Sort{
    int arr[];
    public void sort() {
        for (int i = arr.length-1; i >0 ; i--) { //比较次数等于数组的长度-1 所以我们比较length-1就行
            for (int j = 0; j < i ; j++) {
                if (arr[j] > arr[j+1]) {  //判断前一个是否比后一个大
                    int temp = arr[j];    //定义中间变量交换两个数
                    arr[j] =arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
    public void traversing() {// 遍历数组
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i] + " ");
        }
    }
    public Sort(int [] arr)
    {
        this.arr = arr;
    }
}
class Main_{
    public static void main(String[] args) {
        int arr[] = {1,0,98,4};
        Sort sort = new Sort(arr);

        sort.sort();
        sort.traversing();
    }
}

运行结果:

0 1 4 98 

当然在Java中我们并不需要写这么复杂的算法,sun公司已经写好封住成了方法,我们用的时候直接调用就行。 

Arrays.sort();方法就可实现排序 ,括号中填一个数组就行。这个方法在 java.util.Arrays 下。

 

 

如果本篇文章对你有用的话 ,点个关注吧。

算法 ——— 冒泡排序(JAVA)

原文:https://www.cnblogs.com/592L/p/12565499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!