排序算法总结--JS
来源:互联网 发布:超链接调用js传递参数 编辑:程序博客网 时间:2024/06/09 16:58
交换排序
- 冒泡排序
基本思想:比较相邻的元素,前一个大于后面一个就调换位置;从第一对比较到最后一对,最后位置是最大元素。不断重复上述步骤,排序完成。
平均时间复杂度: O(n^2)
最优时间复杂的: O(n)
最差时间复杂度: O(n^2)
function sort_bubble(arr){ var i=0, j=0; var num; for(;i<arr.length;i++){ for(j=i+1;j<arr.length;j++){ if(arr[i]<arr[j]){ num = arr[i]; arr[i] = arr[j]; arr[j] = num; } } }}
- 快速排序
基本思想:- 从序列中挑出一个元素,作为基准
- 把所有比基准值小的放在基准前面,所有比基准大的放在基准后面,进行分区
- 对每个分区递归进行上面步骤,递归结束条件是序列的大小是0或1
平均时间复杂度:O(nlogn)
最差时间复杂度:O(n^2)
最优时间复杂度:O(nlogn)
function partition(arr,left,right){ var temp; var pivot_num = arr[right]; var tail = left-1; for(var i= left; i< right; i++){ if(arr[i]<=pivot_num){ ++tail; temp = arr[tail]; arr[tail] = arr[i]; arr[i] = temp; } } temp = arr[right]; arr[right] = arr[tail+1]; arr[tail+1] = temp; return tail+1;}function sort_quick(arr,left,right){ if(left>=right) return ; var pivot = partition(arr,left,right); sort_quick(arr,left,pivot-1); sort_quick(arr,pivot+1,right);}
选择排序
- 堆排序
基本思想:- 由输入的无序数列构造一个最大堆,作为初始的无序区
- 把堆顶元素(最大值)和堆尾元素互换
- 把堆得尺寸缩小1,并调用heapify(A,0)从新的堆顶元素开始进行堆调整
- 重复步骤2,直到堆尺寸为1
阅读全文
0 0
- 排序算法总结--JS
- js总结常用排序算法
- 7大排序算法总结 JS 实现
- 算法--排序算法总结
- 算法:排序算法总结
- 算法:排序算法总结
- 算法-排序算法总结
- 算法-排序算法总结
- 【排序算法】排序算法总结
- 排序算法总结(js)(还要更新)
- 排序算法总结(js代码实现,思想通用)
- js--排序算法--选择排序
- JS排序算法
- 排序算法JS实现
- JS排序算法
- JS排序算法
- Js实现排序算法
- 排序算法(JS)
- VMware虚拟机安装Ubuntu以及Linux入门基础
- 机器学习实战-利用K-均值聚类算法对未标注数据分组
- char* char[] string之间的相互转换
- java--将一个十进制正数转化为二进制
- 冒泡排序算法代码
- 排序算法总结--JS
- nginx -- 正则表达式和全局变量
- 【Spring in action】自动化装配Bean、通过Java代码及xml装配Bean
- 2017 Multi-University Training Contest
- hibernate查询语言--hql
- 实现vector
- tensorflow_api_3:tf.placeholder( )
- URLEncoder.encode的默认编码问题
- flume的三种channel比较