| |
| function quickSort(arr) { |
| if (arr.length <= 1) { |
| return arr; |
| } |
| const pivot = arr[0]; |
| const left = []; |
| const right = []; |
| for (let i = 1; i < arr.length; i++) { |
| if (arr[i] < pivot) { |
| left.push(arr[i]); |
| } else { |
| right.push(arr[i]); |
| } |
| } |
| return quickSort(left).concat(pivot, quickSort(right)); |
| } |
| |
| console.time('quickSort'); |
| console.log(quickSort([0, 1, 0, 2, 0, 2, 1, 0, 1])); |
| console.timeEnd('quickSort'); |
| |
| |
| |
| |
| function threeWaySort(arr) { |
| let zero = 0, |
| two = arr.length - 1; |
| for (let i = 0; i < arr.length; i++) { |
| while (arr[i] === 2 && i < two) { |
| [arr[i], arr[two]] = [arr[two], arr[i]]; |
| two--; |
| } |
| |
| if (arr[i] === 0) { |
| [arr[i], arr[zero]] = [arr[zero], arr[i]]; |
| zero++; |
| } |
| } |
| |
| return arr; |
| } |
| |
| console.time('threeWaySort'); |
| console.log(threeWaySort([0, 1, 0, 2, 0, 2, 1, 0, 1])); |
| console.timeEnd('threeWaySort'); |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!