冒泡排序,如从小到大排序,意指两个位置所拥有的数的交换,如图,1中的盒子与2中的盒子比较,盒子互换位置,这时较高的盒子位于2的位置。此时,2位置的盒子在与3位置的盒子相比较。如此说来,从最出开始与后一个盒子比较到与最后一个盒子比较可设次数为m,用当用for循环时,此处的1 2 3 4...可用j来代替。当一处的盒子与其他盒子比较完之后,则可开启下一轮比较,我们可设比较的总轮数为n,从开始比较是的第几轮用i来代替。
vararr= [3,5,1,4,2];
var
m
=
0
;
varn= 0;
for
(
var
i
=
0
;
i
<
arr
.
length
-
1
;
i
++) {
//
定义一个bool类型值来判断这一轮是否做出了修改
var
bool
=
true;
//因为每完成一轮,则较大的数就会被移至后面,所以可以少比较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
;
//当这一轮中有一个位置的内容需要交换时,bool值即为false;
bool
=
false
;
}
m
++;
}
if
(
bool
) {
break
; //当bool值为真时,这一轮未作出修改,则跳出这一轮。
}
n
++;
}
console
.
log
(
arr
);
console
.
log
(
"
比较了:
"
+
n
+
"
轮
"
+
m
+
"
次
"
);
(
注:上述内容为本人的笔记和总结,望大牛勿喷!如有错误还望留言指点!)