冒泡排序的思想:

    1. 两个数值比较,假如规则为升序,那吗将两个值的大值放到第二位,小值放在第一位
    2. 遍历结束,数组最大值出现在数组最后
    3. 重复遍历,将剩余值依照第一步与第二步进行

    时间复杂度 O(n²) 空间复杂度O(n)

    1. /**
    2. * 冒泡排序
    3. */
    4. function insertion_sort(arr) {
    5. for(let l = 0; l < arr.length; l++) {
    6. for (let i = 0; i < arr.length; i++) {
    7. /**
    8. * 当前位于下一位进行比较,那个大那个在后面,第一轮循环将最大值放到数组最后一位
    9. */
    10. if (arr[i] > arr[i + 1]) {
    11. swapPosition(arr, i, i + 1);
    12. } else {
    13. break;
    14. }
    15. }
    16. }
    17. return arr;
    18. }
    19. /**
    20. * 交换数组相邻的位置
    21. */
    22. function swapPosition(arr, cur, next) {
    23. const nextValue = arr[next];
    24. arr[next] = arr[cur]
    25. arr[cur] = nextValue;
    26. }
    27. const arr = [5,4,3,1,2];
    28. console.log(insertion_sort(arr));