Skip to content

基础排序:冒泡排序(Bubble sort) #4

@Yevvb

Description

@Yevvb

基础排序算法之三:冒泡排序

最简单的排序算法

冒泡排序作为面试官最喜欢问的问题之一,弥补了其性能差劲的缺点!

代码实现

  // Bubble.js

  // 交换数组中两个元素的方法
  function exch(arr, m, n) {
    var temp = arr[m];
    arr[m] = arr[n];
    arr[n] = temp;
  }

  const Bubble = (arr) => {
    var len = arr.length,
        i;
    // 标志从最后一个位置开始,将最大的放在这里,每次往前进一位
    for (var flag=len-1; flag>0; flag--) {
      i = 1;
      // 循环当前长度的数组,如果数组长度小于二,跳出循环
      while (i <= flag) {
        // 比较两个元素,小放前面,大的放后面
        if (arr[i] < arr[i-1]) exch(arr,i-1,i);
		i++;
      }
    }
    return arr;
  };

  export default Bubble;
  

排序性能

排序的时间和输入相关:数组有序,一趟扫描不需要移动就可以完成。若初始为反序,每趟需要移动 1 至 (n-1)次,外循环次数固定为 n-1
数据移动:初始顺序相关

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions