首页 > 技术文章 > js 冒泡排序

sxdpanda 2021-02-04 12:02 原文

排序前需要了解的知识点:如何交换两个变量的值?

交换变量位置案例
var a = 12,
b = 54;
//使用中间变量方式
var temp; //创建个中间变量temp
temp = a; //先将 a 的值给temp, 此时temp = 12
a = b; //再把 b 的值给到 a,此时 a = 54
b = temp; //最后把temp的值给 b,此时 b = 12
console.log(a) //查看结果

冒泡排序原理分析
1、两两进行比较,如果第一个比第二个大就交换他们位置
2、重复上面的步骤,一轮结束后,最后的那个数就是最大的数字或者最小的
3、比较的次数 = 数组的长度 - 1,天塌下来都是这个样子
4、需要两层的循环,外层的循环负责交换的次数,内层循环负责比较的次数
5、最后就是交换两个变量的位置了,我上面已经演示过了,不懂得可以看下

冒泡排序实例
// 开始冒泡排序
var arr = [25, 36, 12, 45, 62, 3, 1, 5]; //需要进行排序的数组

//外层循环负责交换的次数
for (var i = 0; i < arr.length - 1; i++) {
    //内层循环负责比较的次数
    for (var j = 0; j < arr.length - i - 1; j++) {
        //开始比较
        if (arr[j] < arr[j + 1]) {
            //开始交换变量的位置
            var temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp
        }
    }
}
console.log(arr);//循环结束后查看结果

推荐阅读