冒泡排序
1.最初版:
<script type="text/javascript">
var aArr = [19,2,12,3,78,520];
for (var j = 0;j < aArr.length - 1;j ++) {
for (var i = 0;i < aArr.length - 1;i ++) {
if (aArr[i] > aArr[i+1]) {
var t = aArr[i];
aArr[i] = aArr[i+1];
aArr[i+1] = t;
}
}
}
</script>
2.改进版-不比较每趟的最后一个数
<script type="text/javascript">
var aArr = [19,2,12,3,78,520];
for (var j = 0;j < aArr.length - 1;j ++) {
for (var i = 0;i < aArr.length - 1 - j;i ++) {
if (aArr[i] > aArr[i+1]) {
var t = aArr[i];
aArr[i] = aArr[i+1];
aArr[i+1] = t;
}
}
}
</script>
3.把冒泡排序封装成函数,可以通过compare函数进行正序或者逆序的选择
<script type="text/javascript">
function bubbleSort(aArr,func) {
for (var i = 0;i < aArr.length - 1;i ++) {
for (var j = 0;j < aArr.length - 1;j ++) {
if (func(aArr[i],aArr[i+1]) > 0) {
var t = aArr[i];
aArr[i] = aArr[i+1];
aArr[i+1] = t;
}
}
}
}
function compare(x,y) /选择排序规则
{
return x - y;
}
var aArr = [19,2,12,3,78,520];
console.log(aArr);
bubbleSort(aArr,compare);
console.log(aArr);
</script>