//冒泡排序
//冒泡,是因为越大的元素会经由交换慢慢“浮”到数列的顶端,
//就如同碳酸饮料中二氧花坛的气泡最终会上浮到顶端一样,故名:'冒泡排序'
numarr = [36, 18, 77, 45, 92, 23, 11];
// 18 36
// 36 77
// 45 77
// 77 92
// 23 92
// 11 92
// [18,36,45,77,23,11,92];
// 18 36
// 36 45
// 45 77
// 23 77
// 11 77
// [18,36,45,23,11,77,92];
// 18 36
// 36 45
// 23 45
// 11 45
// [18,36,23,11,45,77,92];
// 18 36
// 23 36
// 11 36
// [18,23,11,36,45,77,92];
// 18 23
// 11 23
// [18,11,23,36,45,77,92];
// 11 18
// [11,18,23,36,45,77,92];
总结特点:
1. 不论有多少个值俩俩比较,得到最大的值,需要比较的次数是值的个数-1次
2. 不论有多少个值参与排序,最终完成排序,需要从头到尾比较的论述值得个数-1轮
3.完成排序,在每一轮的比较过程中,下一轮俩俩比较的次数可以比上一轮少一次
//控制数组完成排序需要多少论比较
for (var i = 0; i < numarr.length - 1; i++) {
//控制数组每一轮比较的次数
for (var j = 0; j < numarr.length - 1 - i; j++) {//因为第一轮时最大值已经放在最后,第二三..轮后最大值就不进行比较了所以在这里要再减去一个i
//判断循环变量当前的这个值如果大于下一个值
if (numarr[j] > numarr[j + 1]) { //索引进行比较第一个为0 第二个为0+1=1 依此类推。
//交换 循环变量当前的这个值 和下一个值 的位置
var tp = numarr[j];
numarr[j] = numarr[j + 1];
numarr[j + 1] = tp; //交换就是让大的往后面走,小的就自己
}
}
}
console.log(numarr);
//封装数组冒泡排序的方法
function bubblingSort(numarr) {
//控制数组完成排序需要多少论比较
for (var i = 0; i < numarr.length - 1; i++) {
//控制数组每一轮比较的次数
for (var j = 0; j < numarr.length - 1 - i; j++) {
// 判断循环变量当前的这个值如果大于下一个值
if (numarr[j] > numarr[j + 1]) {
var tp = numarr[j];
numarr[j] = numarr[j + 1];
numarr[j + 1] = tp;
}
}
}
return numarr;
}
var arr = bubblingSort([9, 2, 6, 4, 1, 8, 7, 5]);
console.log(arr);//[1, 2, 4, 5, 6, 7, 8, 9]
前端第二周,Javascript--冒泡排序
最新推荐文章于 2025-11-23 23:13:13 发布
本文详细介绍了冒泡排序的过程,包括其特点如比较次数和轮数,以及如何通过嵌套循环实现排序。通过示例展示了如何使用JavaScript封装冒泡排序函数。
410

被折叠的 条评论
为什么被折叠?



