关于算法:写一个简单的冒泡排序

8次阅读

共计 476 个字符,预计需要花费 2 分钟才能阅读完成。


次要的思路其实就是从最右边开始,顺次比拟相邻两个元素的大小,若右边的数大于左边的数就进行替换,这样把所有的相邻元素都比拟一遍当前,最左边的数就是其中最大的数了。

紧接着又持续从最右边开始,顺次比拟各个相邻元素,并判断是否须要替换地位,但与第一遍不同的是,最左边的数不须要进行比拟,因为它曾经是最大的了。因而第二遍比拟完后从右往左数第二个数是其中第二大的数。

以此类推,就能将数据按从小到大的程序排好了

咱们来看一下如何封装冒泡排序的函数吧

function bubbleSort(arr) {if(!Array.isArray(arr)){return arr;}
  let length = arr.length;
  for(let i=length-1; i>0; i--) {for(let j=0; j<i; j++) {if(arr[j]>arr[j+1]){[arr[j], arr[j+1]] = [arr[j+1], arr[j]]
      }
    }
  }
  return arr;
}
console.log(bubbleSort([25,16,30,16,40,8]));
// [8, 16, 16, 25, 30, 40]
正文完
 0