JS冒泡排序
前言
冒泡排序:计算机科学中较为简单的排序算法
原理
实现原理:在冒泡排序的过程中,按照要求从小到大排序或者从大到小排序,
不断比较数组中相邻的两个元素的值,较小或较大的元素前移。
<script type="text/javascript">
//选出最大值和最小值
var arr =[100,34,64,24,4,5,36];
var change = false;//表示是否发生过元素的交换。
var waterFace =-1;//表示水面,随着排序次数的增加水面逐渐减小
//冒泡排序实现从小到大的排序
for(var i=0;i<arr.length+waterFace;i++){
if(arr[i] > arr[i+1]){//判断前一个数是否大于后一个数
//发生交换
var t = arr[i+1];//创建一个容器存储后一个数
arr[i+1] = arr[i];//前一个和后一个数发生交换
arr[i] = t;//把容器里面的后一个数交个前一个数//数据交换完成
change = true;//表示交换过
}
//判断在本轮冒泡是否发生过元素的交换
if(i==(arr.length + waterFace - 1)){//如果i等于比较次数就执行下面语句
waterFace--;//本轮冒泡结束时才下调水面
console.log('本次冒泡的结果',arr);
if(change==false){
//表示本论冒泡结束时,没有发生过交换
break;
}else{
i=-1;//循环时i++,所以此时为-1
change=false;//复位change.准备下一次循环时记录是否发生过交换
}
}
}
console.log('冒泡完的结束',arr);
</script>
总结
好好学习天天秃头