十大经典排序算法-冒泡排序

一、冒泡排序

1、基本介绍

冒泡排序的基本思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前向后移动,就像水底的气泡一样逐渐向上冒。

2、时间复杂度

时间复杂度O(n^2)

3、代码实现

import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        int [] arr = new int[]{5,7,2,9,4,1,0,5,7};
        System.out.println(Arrays.toString(arr));
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    // 冒泡排序
    public static void bubbleSort(int[] arr){
        // 控制共比较多少轮
        for (int i = 0;i<arr.length-1;i++){
            // 控制比较的次数
            for (int j = 0;j<arr.length-1-i;j++){
                if (arr[j]>arr[j+1]){
                    // 交换位置
                    int tmp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }
    }
}

scala实现

/**
 * Created with IntelliJ IDEA.
 * User: Andrew
 * Date: 2021/02/10
 * Time: 15:40
 * Description: No Description
 */

object BuSort {
  def BuSort(arr:Array[Int]):Array[Int]={
    for (i <- 0 until arr.length-1){
      for (j <- 0 until arr.length-i-1){
        if (arr(j) > arr(j+1)){
          val temp = arr(j)
          arr(j) = arr(j+1)
          arr(j+1) = temp
        }
      }
    }
    arr
  }

  def main(args: Array[String]): Unit = {
    val array = Array(5,7,2,9,4,1,0,5,7)
    println(array.toBuffer)
    BuSort(array)
    println(array.toBuffer)
  }

}

 

posted @ 2021-02-10 19:47  Andrew037  阅读(64)  评论(0)    收藏  举报