冒泡排序
来源:互联网 发布:大数据r语言 编辑:程序博客网 时间:2024/06/07 14:55
冒泡排序:
从头开始,比较相邻的两个元素,按升序排列,如果前面的元素大于后面元素,则互换位置。每次遍历之后,总是将最大的数放在此次遍历的最后一个位置。
例如:数组20,7,3,1,18,31,19
第一次排序结束后31将会被放在最后一位[7,3,1,18,20,19,31],那么下次遍历的结束位置就是在19的位置结束。所以只需比较前面数组的大小互换位置。另外一种情况:如果数组已经排好序列,按照上述思路还是需要几轮遍历,所有需要引进一个指针来表明数组是否需要下次遍历。如果在遍历过程中数组没有交换位置,则表明已经排序完成,则排序结束。
/** * 冒泡排序 * 时间复杂度:O(n2) * 稳定性:稳定 * @param array */function bubbleSort(array) { var isNextSort=true;//下次是否需要遍历 for(var i=0;i<array.length-1&&isNextSort;i++){ isNextSort=false; for(var j=0;j<array.length-i;j++){ if(array[j]<array[j+1]){ isNextSort=true; var temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } return array;}
冒泡排序算法比较稳定,时间复杂度为O(n2)
阅读全文
1 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- Cortex-M3内核简析
- openjudge 4089:电话号码 字典树
- java中的单例设计模式详解
- 网络端口的分类
- 之前的博客写满了,搬家到这里
- 冒泡排序
- (27)Dubbo的Provider和consumer(springmvc)搭建完成-goodjob!
- xposed模块开发步骤总结
- hihoCoder挑战赛29 D.不上升序列
- spring boot之多环境配置
- 关于我尽可能多的一切
- 【简记】Operating System——Atomic Transaction Overview
- spring+springMVC+Mybatis在maven工程的搭建总结
- oracle---操作占用,卡住