JS排序之冒泡排序
冒泡排序的两种策略:
<script>
// 第一种思路:
// 一个数组中的数据,拿第一个和剩下的依次进行对比,数值小的赋值给第一个,一轮比较过后,则数值小的放在最前边。
// 第二轮比较,则最前边的不需要比较(因为最小),拿第二个和剩下的进行比较,数值小的赋值给第二个。
var arr = [12,15,2,47,98,76,23,13,0];
function bubbleSort(arr){
var num = 0;
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
num++;
if(arr[i]>arr[j]){
var tempSum = arr[i];
arr[i] = arr[j];
arr[j] = tempSum;
}
}
}
console.log('bubbleSort的循环次数是'+num);
return arr;
}
console.log(bubbleSort(arr));
// 第二种思路:
// 一个数组中的数据,拿第一个和剩下的依次进行对比,数值大的赋值给第二个,一轮比较过后,则数值大的放在最后边。
// 第二轮比较,拿第一个和(n-1)个进行比较,数值大的赋值给第二个,最后是上轮数值最大的那个,不需对比。
var arr2 = [12,15,2,47,98,76,23,13,0];
function bubbleSort2(arr){
var num2 = 0;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
num2++
if(arr[i]>arr[j]){
var tempSum = arr[i];
arr[i] = arr[j];
arr[j] = tempSum;
}
}
}
console.log('bubbleSort2的循环次数是'+num2);
return arr;
}
console.log(bubbleSort2(arr));
</script>
最新文章
- 记一次Redis被攻击的事件
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
- nginx-1.8.0 rpm包制作
- 转:Google论文之二----Google文件系统(GFS)翻译学习
- 解决百度Ueditor编辑器表格不显示边框问题
- 认识ptrace函数
- buildroot 重新编译 package
- Xcode 设置文件生成时的模板
- Python的列表
- ElasticSearch之 控制相关度原理讲解
- 闪回工具flashback
- CF666E Forensic Examination [后缀自动机,线段树合并]
- fiddle使用小结
- mysql 各种关系代数的使用
- 利用padding-top/padding-bottom百分比,进行占位和高度自适应
- Flask视图函数与普通函数的区别,响应对象Response
- 总结day23 ---- 网络编程,以及计算机基础概念
- Mariadb相关
- 并发系列4-大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?【石杉的架构笔记】
- Ant入门之引用外部jar文件