JS实现冒泡排序
2018-07-12 15:31
260 查看
1,算法简介
冒泡排序是一种简单的排序算法,它的工作原理是重复走访要排列的元素,一次比较两个元素,若两个元素有错误,则将它们交换,直到没有元素再交换,排序结束。
2,算法描述
1)比较相邻元素,如果第一个比第二个大,就交换
2)对每一对相邻元素作相同的工作,从第一对到最后一对,最后那个元素会是最大元素
3)针对所有元素执行上面的操作,除了最后一个除外
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
3,算法分析
阅读更多
冒泡排序是一种简单的排序算法,它的工作原理是重复走访要排列的元素,一次比较两个元素,若两个元素有错误,则将它们交换,直到没有元素再交换,排序结束。
2,算法描述
1)比较相邻元素,如果第一个比第二个大,就交换
2)对每一对相邻元素作相同的工作,从第一对到最后一对,最后那个元素会是最大元素
3)针对所有元素执行上面的操作,除了最后一个除外
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
3,算法分析
在最坏的情况下,冒泡排序需要交换n(n-1)/2次,空间复杂度为O(1)时间复杂度最好的情况是O(n) 最坏的情况O(n^2) 平均复杂度为O(n^2) 不稳定
4,代码实现//冒泡排序 function bubbleSort(arr){ var len = arr.length; for(var i=0;i<len-1;i++){ for (var j = i+1;j<len;j++){ if(arr[i]>arr[j]){ var temp =arr[i]; arr[i]=arr[j]; arr[j]= temp; } } } return arr; }增加标志位可以减少比较的次数,如下:
//冒泡排序 function bubbleSort(arr){ var len = arr.length; var flag= true;//增加标志位的判断,减少比较的次数 for(var i=0;i<len-1;i++){ for (var j = i+1;j<len;j++){ if(arr[i]>arr[j]){ var temp =arr[i]; arr[i]=arr[j]; arr[j]= temp; flag=false; } } if(flag == true) break; } return arr; }
阅读更多
相关文章推荐
- js实现冒泡排序
- 用js实现冒泡排序和求水仙花数
- 用JS实现冒泡排序、顺序排序、 折半查找
- js中的冒泡排序以及实现一个数组中得最到最大的数字小例
- js 实现冒泡排序
- JS实现冒泡排序
- js实现排序算法(冒泡排序,直接插入排序)
- js实现冒泡排序
- js实现常见的三种排序方法(冒泡排序、快速排序、归并排序)
- js实现队列的操作以及对队列中数字的冒泡排序的可视化
- 用js实现算法:冒泡排序、插入排序和快速排序
- js数组冒泡排序,快速排序的原理以及实现
- 冒泡排序、快速排序 ———— js实现
- JS实现冒泡排序
- js实现基础的排序-冒泡排序、选择排序、插入排序
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- JS实现冒泡排序,插入排序和快速排序(从input中获取内容)
- 用js实现冒泡排序
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- js实现数组冒泡排序、快速排序原理