JS-冒泡排序

£可爱£侵袭症+ 提交于 2019-12-05 12:10:17

冒泡排序

冒泡排序的原理如下,从第一个元素开始,把当前元素和下一个索引元素进行比较。如果当前元素大,那么就交换位置,重复操作直到比较到最后一个元素,那么此时最后一个元素就是该数组中最大的数。下一轮重复以上操作,但是此时最后一个元素已经是最大数了,所以不需要再比较最后一个元素,只需要比较到 length - 2 的位置。

以下是实现该算法的代码

// 冒泡排序
export default (arr) => {
  for (var i = arr.length - 1, tem; i > 0; i--) {
    for (var j = 0; j < i; j++) {
      tem = arr[j]
      if (tem > arr[j + 1]) {
        arr[j] = arr[j + 1]
        arr[j + 1] = tem
      }
    }
  }
  return arr
}

测试用例

import sort from '../../code/sort/lesson1-1'

test('冒泡排序', () => {
  expect(sort([1, 9, 5, 3, 4])).toEqual([1, 3, 4, 5, 9])
})
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!