【Java SE】如何用Java实现冒泡排序

摘要:

  做为一名Java开发工程师,手头若是不会几个常见的排序算法,怎么可能通过笔试题这一关呢。据我所知,许多大型的公司的笔试题都有排序题,那咱们先从最简单的排序:冒泡排序开始,之后几篇博客将继续更新几种深层次的排序。

  冒泡排序的原理:他的基本原理就是和相邻的元素值进行比较(这里特指和数组比较),若是知足条件就交换元素值,把较小的元素和较大的元素交换,这样小的元素就像小气泡同样从底部上升到顶部,大的元素就像大气泡同样从顶部下沉到底部。

1.适宜人群:有必定Java SE基础的同窗,明白Java的数据类型,数组的定义、初始化以及经常使用数组的方法,还有Java的循环操做。

2.前期准备:最好有一个开发工具好比说:eclipse或者myeclipse均可以,固然你使用DOS系统进行编译运行均可以,只不过改bug会麻烦一点。

3.算法实现:

public class BubbleSort{
    public static void main(String[] args){
        //首先建立一个无序的数组。
        int[] array = {100,120,530,1,2,48,26};//int[] array和int array[]均可以,可是推荐使用前者
        //建立冒泡排序类的对象
        BubbleSort arraySort = new BubbleSort();
        //调用排序方法将数组排序
        arraySort.sort(array);
    }
    public void sort(int[] array){
        for(int i= 1;i<array.length;i++)
        {
            //开始比较相邻元素的值,大元素下沉
            for(int j=0;j<array.length-i;j++){
                if(array[j]>array[j+1]){
                    //知足条件就交换两个元素的值
                    int temp = array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
        showArray(array);
    }
    //显示数组中的全部元素
    public void showArray(int[] array){
        //这里使用的一种不常见的foreach循环,不习惯这种写法的能够用for循环
        /*
        for(int i=0;i<array.length;i++)
        {
            System.out.print(array[i]+" ");
        }
        */
        for(int i:array)
        {
            System.out.print(i+" ");
        }
    }
}

4.冒泡排序的优缺点:

优势:比较简单,空间复杂度较低,是稳定的。优势:
缺点:时间复杂度过高,效率很差。

5.后记:冒泡排序是排序算法的第一课,也是我的认为最容易入手的一个排序算法,后续我将为你们介绍更多实用但更复杂的排序算法。

相关文章
相关标签/搜索