zoukankan      html  css  js  c++  java
  • 排序算法-冒泡排序

    冒泡排序是对序列进行循环遍历的一种排序方式,每次把最小或最大的元素放到序列的最前端。

    1.代码实现

    以java实现为例:

    public class BubbleSort {
    public static int[] bubbleSort(int[] nums) {
    for (int i = 0; i < nums.length; i++) {
    for (int j = i; j < nums.length; j++) {
    if(nums[i] > nums[j]){
    int temp = nums[i];
    nums[i] = nums[j];
    nums[j] = temp;
    }
    }
    }
    return nums;
    }
    public static void main(String[] args) {
    int[] nums = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 10 };
    int[] newNums = bubbleSort(nums);
    for (int x : newNums) {
    System.out.print(x+" ");
    }
    }
    }

    2.数据运行解析

    数据的分解示例如下

    i=0时
    [9 8 7 6 5 4 3 2 10]
    -> [8 9 7 6 5 4 3 2 10]  
    -> [7 9 8 6 5 4 3 2 10]
    -> [6 9 8 7 5 4 3 2 10]
    -> [5 9 8 7 6 4 3 2 10]
    -> [4 9 8 7 6 5 3 2 10]
    -> [3 9 8 7 6 5 4 2 10]
    -> [2 9 8 7 6 5 4 3 10]
    此时序列的最小元素已经放在最前,进入下一轮循环i=1时
    -> [2 8 9 7 6 5 4 3 10]
    -> [2 7 9 8 6 5 4 3 10]
    .....

    3.复杂度分析

    冒泡排序在序列已经有序的情况下有最好时间复杂度O(n)(上述代码未实现,需要设置标识判断有序情况),最差和平均时间复杂度都是O(n²),空间复杂度为T(1)。

  • 相关阅读:
    java_方法
    Java switch case和数组
    Java流程控制语句
    Java变量和运算符
    Java对象和类
    Java基础语法
    Vmare12(虚拟机)安装Mac OS X Yosemite 10.10
    System Operations on AWS
    System Operations on AWS
    System Operations on AWS
  • 原文地址:https://www.cnblogs.com/cykfory/p/14097100.html
Copyright © 2011-2022 走看看