排序算法(常见的排序算法的时间复杂度 O(n2))
排序算法(常见的排序算法的时间复杂度 O(n2)) 1.冒泡排序(俩俩(相邻的俩个)相比 位置交换)O(n2) ```js //冒泡排序 function bubleSort(arr){ //冒泡排序 外层的轮数 for(var i=0;i<arr.length-1;i++){ //控制比较的次数 for(var j=1;j<arr.length-i;j++){ //j和j-1 俩俩进行比较 if(arr[j]<arr[j-1]){ //换位置 var temp = arr[j] arr[j] = arr[j-1] arr[j-1] = temp } } } return arr } ``` 2.选择排序 (选择一个值 跟所有的值进行比较 然后这个值不是开始的 就换位置)O(n2) ```js //选择排序 function selectorSort(arr){ for(var i=0;i<arr.length-1;i++){ //将当前的i值当做最大值 var max = i for(var j = i+1;j<arr.length;j++){ //判断当前的最大值小于j下标所在的值 if(arr[max]<arr[j]){ max = j } } //判断当前的最大值不是开始设置的值 要进行位置交换 if(max != i){ var temp = arr[i] arr[i] = arr[max] arr[max] = temp } } return arr } ``` 3.快速排序(冒泡排序的进阶 二分法)O(nlogn) ```js //快速排序 function quikSort(arr){ //当我们的数组里面只有一个元素或者一个元素都没有的时候 退出返回这个数组 if(arr.length <= 1){ return arr } //取基数值 取第一个 var mid = arr[0] var left = [] var right = [] //for循环 拿出所有的值跟中间值比较 for(var i=1;i<arr.length;i++){ arr[i]>=mid?right.push(arr[i]):left.push(arr[i]) } return quikSort(left).concat([mid],quikSort(right)) } ```
4.插入排序
5.希尔排序(插入排序的进阶)
6.堆排序
7.桶排序
8.基数排序
9.归并排序(大数据排序)
....
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix