JavaScript 冒泡排序与选择排序代码解析
作者:木棉时间:2026-10-30 13:19:02浏览:78
本文提供 JavaScript 实现的冒泡排序与选择排序完整代码。通过数组遍历与元素交换逻辑,展示两种基础排序算法的具体写法与执行过程,适用于前端开发中的基础算法学习。
JavaScript 排序算法代码示例
直接展示相关代码实现,具体内容如下。
var array = [1,2,3,4,5]; // ---> 服务
//效率 ---> 针对一个有序的数组 效率最高
//标志 true false
for(var j = 0; j < array.length - 1;j++ ){
//- j 每次排序完成之后 后面减少比较的次数
var isTrue = true; //如果数组本身就是升序,则直接输出
for(var i = 0; i < array.length - j - 1;i++){
if(array[i] > array[i+1])
{
var temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
isTrue = false;
}
}
document.write(array);
if(isTrue){
break;
}
}
var array = [12,34,4,6,20];
//length - 1 j = 0 - length - 1
for(var j = 0; j < array.length - 1;j++){
var min = array[j]; // 1 3 34 4 345 5
var minIndex = j;
for(var i = j + 1; i < array.length;i++){
if(array[i] < min){
min = array[i];
minIndex = i;
}
}
if(minIndex != j){
var temp = array[minIndex];
array[minIndex] = array[j];
array[j] = temp;
}
}
接下来介绍使用 JavaScript 实现的三种排序算法:、以及插入排序的代码示例。
<script type="text/javascript">
var a;
a = [66, 53, 11, 5, 4, 3, 2, 1];
/*冒泡排序*/
(function maopaopaixu() {
for (var i = 0; i < a.length - 1; i++) {//比较的次数是length-1
for (var j = 0; j < a.length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
var tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
alert(a);
})();
a = [66, 53, 11, 5, 4, 3, 2, 1];
/*选择排序*/
(function xuanzepaixu() {
var min/*最小项的索引*/, tmp;
for (var out = 0; out < a.length - 1; out++) {//比较的次数是length-1
min = out;
for (var inner = out + 1; inner < a.length; inner++) {//这里是a.length,不是a.lenght-1,因为后者会导致右数第2项没法参与排序。
if (a[inner] < a[min]) {
min = inner;
}
//将最小的项移动到左侧
tmp = a[out];
a[out] = a[min]
a[min] = tmp;
}
}
alert(a);
})();
a = [66, 53, 11, 5, 4, 3, 2, 1];
/*插入排序*/
(function charupaixu() {
for (var out = 1; out < a.length; out++) {
var tmp = a[out];
var inner = out;
while (a[inner - 1] > tmp) {
a[inner] = a[inner - 1];
--inner;
}
a[inner] = tmp;
}
alert(a);
})();
</script>
以上介绍了 JavaScript 中冒泡排序与选择排序的实现方式,希望能对读者有所帮助。如有任何疑问,欢迎留言,作者将及时回复。
作者最新文章
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
