排序算法之冒泡排序
来源:互联网 发布:免费宠物店收银软件 编辑:程序博客网 时间:2024/06/07 12:31
阔别校园有一段时间了,但是拿出这些排序算法,还是很有感觉。
写一篇笔记记录下来,有用的同学收藏一下吧!
排序算法:一种能将一串数据依照特定的排序方式进行排列的一种算法。
排序算法性能:取决于时间和空间复杂度,其次还得考虑稳定性,及其适应的场景。
稳定性:让原本有相等键值的记录维持相对次序。也就是若一个排序算法是稳定的,当有俩个相等键值的记录R和S,且原本的序列中R在S前,那么排序后的列表中R应该也在S之前。
冒泡排序算法的运作如下:(从后往前)
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序的性能:
时间复杂度为O(N^2),空间复杂度为O(1)。排序是稳定的,排序比较次数与初始序列无关,但交换次数与初始序列有关。
function bubble_sort(arr){ var len = arr.length; for (var i = 0; i < len-1; i++){ var exchange = true; for (var j = len-1; j >i; j--){ if (arr[j] < arr[j - 1]){ var temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; exchange = false; } } if (exchange){ return arr; } }}var startTime = new Date();var result = bubble_sort([2,4,1,3,8,7,4,0,6,10]);console.log(result);var endTime = new Date();console.log(endTime-startTime);
代码中的exchange参数算是算法的一个优化,在没有发生位置交换的情况下,说明是已经排好序的!
0 0
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 【排序算法】之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之-冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 有章法的学习c++(6)字面值常量
- tomcat 的http和ajp协议
- Android文件存储之SDcard
- 小白日记5:kali渗透测试之被动信息收集(四)--theHarvester,metagoofil,meltag,个人专属密码字典--CUPP
- Java IO深入理解
- 排序算法之冒泡排序
- 线索二叉树
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的区别和联系
- POJ 3107树的重心
- 自白初衷
- Valid Perfect Square
- mybatis 原始dao开发和mapper代理开发的比较
- Leetcode 242. Valid Anagram
- CCF-201312-3-最大的矩形