测排序算法的时空复杂度的程序代码
时间: 2023-07-22 13:31:30 浏览: 93
下面是一个简单的示例程序,用于测量排序算法的时间和空间复杂度:
```python
import time
import sys
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
def test_sort(sort_func, arr):
start_time = time.time()
sort_func(arr)
end_time = time.time()
time_cost = end_time - start_time
space_cost = sys.getsizeof(arr)
return time_cost, space_cost
if __name__ == '__main__':
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
bubble_time, bubble_space = test_sort(bubble_sort, arr)
print(f"Bubble sort time cost: {bubble_time:.6f}s, space cost: {bubble_space} bytes")
```
在这个示例程序中,我们定义了一个冒泡排序函数 `bubble_sort`,以及一个测试函数 `test_sort`。在测试函数中,我们先记录下当前时间,然后调用排序函数对数组进行排序,再记录下排序后的时间,最后计算出时间和空间的消耗并返回。
当我们运行这个程序时,它会输出冒泡排序的时间和空间消耗:
```
Bubble sort time cost: 0.000019s, space cost: 192 bytes
```
这样,我们就可以通过这个示例程序来测试不同排序算法的时间和空间复杂度了。
阅读全文