冒泡排序——JavaScript实现
2024-08-26 23:35:29
解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
function bubbleSort(arr) {
var len = arr.length; //获得数组长度
if(len<=1){//如果数组长度小于等于1则直接返回数组
return arr;
}
for (var i = 0; i < len; i++) { //第一个for循环遍历数组中每个元素
for (var j = 0; j < len - 1 - i; j++) { //第二个for遍历排出最大的放在最后
if (arr[j] > arr[j+1]) { // 相邻元素两两对比
var temp = arr[j+1]; // 元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;//返回数组
}
时间复杂度:最优O(n);最差O(n^2);平均O(n^2);
空间复杂度:O(1);
最新文章
- java版模拟浏览器下载百度动漫图片到本地。
- 编写高效的js/jQuery代码 :rocket:
- 【笔记】select2的使用
- UIScrollView offset in UINavigationController
- C Memory Layout C语言中的内存布局
- CentOS6编译装载nbd模块
- 如何用Maven创建一个普通Java项目
- php判断服务器是否支持Gzip压缩功能
- Memcache存储大数据的问题
- Tools that help you scrape web data----帮助你收集web数据的工具
- 多线程读写共享变量时,synchronized与volatile的作用
- ASP.NET MVC——Controller的激活
- The Longest Straight(二分,离散化)
- socket及其相关(续篇)
- MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)
- Linux之ulimit详解(整理)
- 第31月第15天 -fembed-bitcode
- JavaScript 的if语句和==的判断
- spark2.1源码分析2:从SparkPi分析一个job的执行
- 渗透测试的理论部分3——ISSAF的详细描述
热门文章
- Programming Series 1.0 — C Programming
- Unix shell范例精解 课后题
- Linux网络编程学习(八) ----- 文件和记录锁定(第四章)
- 前端面试之Javascript
- Redis读超时排查
- spring mvc 框架校验常用注解
- Day08 - Ruby比一比:String的+=与concat串接
- SQL函数总结
- 接口测试之——Charles抓包及常见问题解决(转载自https://www.jianshu.com/p/831c0114179f)
- Python学习—框架篇之初识Django