交互式排序算法演示
这个页面展示了如何使用交互式代码编辑器来学习和测试各种排序算法。你可以直接在浏览器中编辑代码、运行并查看结果。
冒泡排序 (Bubble Sort)
冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果顺序错误就交换。
时间复杂度: O(n²)
空间复杂度: O(1)
稳定性: 稳定
控制台输出:
点击"运行代码"查看输出...
输出:
试试看
在"输出"框中输入 bubbleSort([3, 1, 2]) 然后点击"执行"按钮!
快速排序 (Quick Sort)
快速排序使用分治法策略,选择一个基准元素,将数组分为小于和大于基准的两部分,然后递归排序。
时间复杂度: 平均 O(n log n),最坏 O(n²)
空间复杂度: O(log n)
稳定性: 不稳定
控制台输出:
点击"运行代码"查看输出...
输出:
归并排序 (Merge Sort)
归并排序也是分治法的应用,将数组分成两半,递归排序后再合并。
时间复杂度: O(n log n)
空间复杂度: O(n)
稳定性: 稳定
控制台输出:
点击"运行代码"查看输出...
输出:
堆排序 (Heap Sort)
堆排序利用堆这种数据结构来进行排序,首先建立大顶堆,然后依次取出堆顶元素。
时间复杂度: O(n log n)
空间复杂度: O(1)
稳定性: 不稳定
控制台输出:
点击"运行代码"查看输出...
输出:
使用说明
运行代码
- 点击 "运行代码" 按钮执行代码
- 查看 "控制台输出" 区域的
console.log输出
表达式求值
- 在 "输出" 输入框中输入表达式
- 例如:
bubbleSort([9, 7, 5, 3, 1]) - 点击 "执行" 按钮或按 回车键
- 结果会显示在下方
编辑代码
- 直接在编辑器中修改代码
- 支持语法高亮和行号显示
- 可以添加更多的
console.log来调试
更多算法示例
访问 算法演练场 查看更多算法示例,包括最短路径算法等。
性能对比
不同排序算法的性能对比:
| 算法 | 最好 | 平均 | 最坏 | 空间 | 稳定性 |
|---|---|---|---|---|---|
| 冒泡排序 | O(n) | O(n²) | O(n²) | O(1) | ✅ |
| 快速排序 | O(n log n) | O(n log n) | O(n²) | O(log n) | ❌ |
| 归并排序 | O(n log n) | O(n log n) | O(n log n) | O(n) | ✅ |
| 堆排序 | O(n log n) | O(n log n) | O(n log n) | O(1) | ❌ |
注意
在浏览器中运行代码时,避免:
- 死循环代码(会导致浏览器卡死)
- 过大的数组(可能导致性能问题)
- 恶意代码