🐍 PyScript 交互式代码编辑器
在浏览器中直接编写、运行和调试 Python 代码
📝 代码编辑器
行数: 1
▶️ 运行代码
🗑️ 清空编辑器
✨ 格式化代码
💾 保存代码
# 🫧 冒泡排序算法示例 def bubble_sort(arr): """ 冒泡排序算法实现 时间复杂度: O(n²) 空间复杂度: O(1) """ n = len(arr) comparisons = 0 swaps = 0 print(f"开始排序数组: {arr}") print("=" * 40) for i in range(n): swapped = False print(f"\n第 {i + 1} 轮遍历:") for j in range(0, n - i - 1): comparisons += 1 print(f" 比较 {arr[j]} 和 {arr[j + 1]}") if arr[j] > arr[j + 1]: # 交换元素 arr[j], arr[j + 1] = arr[j + 1], arr[j] swaps += 1 swapped = True print(f" → 交换!当前: {arr}") else: print(f" → 不交换") print(f"第 {i + 1} 轮结束: {arr}") # 优化:如果没有发生交换,数组已排序 if not swapped: print("✅ 没有交换发生,排序完成!") break print("=" * 40) print(f"🎉 排序完成!") print(f"📊 统计信息:") print(f" - 比较次数: {comparisons}") print(f" - 交换次数: {swaps}") print(f" - 最终结果: {arr}") return arr # 测试代码 if __name__ == "__main__": # 测试数据 test_arrays = [ [64, 34, 25, 12, 22, 11, 90], [5, 2, 8, 1, 9], [1, 2, 3, 4, 5], # 已排序 [5, 4, 3, 2, 1], # 逆序 ] for i, test_array in enumerate(test_arrays): print(f"\n{'='*50}") print(f"🧪 测试用例 {i + 1}: {test_array}") print(f"{'='*50}") result = bubble_sort(test_array.copy()) print(f"验证: {result == sorted(test_array)}")
📤 运行输出
清空输出
正在初始化编辑器...
📚 代码示例库
🔢 基础冒泡排序
最简单的冒泡排序实现,适合初学者理解基本原理。
加载示例
⚡ 优化版冒泡排序
增加提前终止机制,提高在部分有序数组上的性能。
加载示例
🎨 可视化冒泡排序
带有详细步骤输出的版本,展示每一步的比较和交换过程。
加载示例
🍸 鸡尾酒排序
双向冒泡排序,从两端同时进行排序的改进版本。
加载示例
📊 性能测试
比较不同规模数据下的排序性能,包含时间和操作次数统计。
加载示例
🎲 随机数据生成器
生成不同类型的测试数据,包括随机、有序、逆序等。
加载示例
就绪
PyScript 版本: 2025.5.1 | Python 版本: 3.12