一种简单的排序算法 (字节 京东 百度等大厂会问到算法,比如排序有几种算法)
冒泡排序,重复走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复进行直到没有再需要交换,即该数列已经排序完成
此算法名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端
如[2, 3, 1,4,5]经过排序成为[1,2,3,4,5]或[5,4,3,2,1]
一共需要的趟数 用外层for循环
每一趟交换次数 用内层循环
最后交换两个变量即可
let arr = [5, 1, 3, 4, 2]
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
// 开始交换 前提第一个数大于第二个数
if (arr[j] > arr[j + 1]) {
// 交换两个变量
let temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
console.log(arr)
评论