JS重要算法:冒泡排序

242 阅读1分钟

冒泡排序简介

数组内部的元素通过与自身其他元素的比较并交换位置,达到降序或升序的效果

通过归纳法找出运行规律

首先先任意创建一个数组 let arr = [3,2,1] 逐步记录下数组交换的情况

第一轮交换 : 用第一个元素3逐个与其他元素比较,如果其他元素数值小于3则与3进行位置交换

[2,3,1] [2,1,3] 在第一轮交换中内部的3共移动了两次

第二轮交换: 同样用第一个元素逐个与其他元素比较

[1,2,3] 在第二轮交换中内部功能移动了一次

由上述规律可看出一次排序共需要进行 arr.length - 1 轮交换

第一轮交换中 , 一共交换了 arr.length - 1次

第一轮交换中 , 一共交换了 arr.length - 2次

js代码实现

由此可用双重for循环来实现此排序

    //最外层for循环控制交换的轮次
    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]){
                //创建temp变量作为中间变量
                let temp = arr[j]
                arr[j] = arr[j+1]
                arr[j+1] = temp
            }
        }
    }