排序算法--冒泡排序--java实现

冒泡排序算法之JAVA实现

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

解决的是排序问题:

输入:一个待排序的数组

输出:排好序的数组

算法思想:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。(这是百度的定义)

算法复杂度:O(n²)

简单来说:冒泡排序就是用多次遍历比较相邻元素的大小,把大的往后放,第一轮遍历的时候就能找到最大的那个元素,并把最大的元素放到数组最后一位,第二次遍历找到第二大的元素,放到倒数第二位,以此类推把数组顺序排好。

话不多说,直接上代码:

package Algorithm;

import java.util.Date;
import java.util.Random;

/**
 * 冒泡排序算法示例
 */
public class BubbleSort {

    /**
     * 冒泡排序核心算法
     * 算法思想:
     * 用多次遍历比较相邻元素的大小,把大的往后放,第一轮遍历找出了最大的那个元素,并放在了数组最后一位,第二轮把第二大的元素放在倒数第二位
     *算法复杂度为:O(n²)
     * @param arr
     * @return
     */
    public static int[] bubbleSort(int arr[]){
        boolean isContinue = true;
        for(int i = 1; i < arr.length && isContinue; i++){
            isContinue = false;
            for(int k = 0; k < arr.length - i;k++){
                if (arr[k] > arr[k+1]){
                    int currentElement = arr[k];
                    arr[k] = arr[k+1];
                    arr[k+1] = currentElement;
                    isContinue = true;
                }
            }
        }
        return arr;
    }
    /**
     * 生成随机数组,传入数组个数和最大的元素值
     * @param n
     * @param maxNum
     * @return
     */
    public static int[] initArray(int n,int maxNum){
        int[] arr = new int[n];
        Random rand = new Random();
        for(int i = 0; i

其中做一些解释

排序算法--冒泡排序--java实现_第1张图片

 

 

来,让我们测试一下 

排序算法--冒泡排序--java实现_第2张图片

如果对其他排序感兴趣,欢迎看我博客里面其它关于排序算法的文章

分享一个我的公众号:JavaUp

希望能和大家一起学习和交流。

你可能感兴趣的:(BubbleSort,Sort,JAVA,java,Algorithm)