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