在归并排序算法中添加计时函数
时间: 2024-05-14 08:18:46 浏览: 86
下面是在 Python 中实现归并排序算法并添加计时函数的示例代码:
```python
import time
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
left_arr = arr[:mid]
right_arr = arr[mid:]
merge_sort(left_arr)
merge_sort(right_arr)
i = j = k = 0
while i < len(left_arr) and j < len(right_arr):
if left_arr[i] < right_arr[j]:
arr[k] = left_arr[i]
i += 1
else:
arr[k] = right_arr[j]
j += 1
k += 1
while i < len(left_arr):
arr[k] = left_arr[i]
i += 1
k += 1
while j < len(right_arr):
arr[k] = right_arr[j]
j += 1
k += 1
def timer(func):
def wrapper(arr):
start_time = time.time()
func(arr)
end_time = time.time()
print("Time taken:", end_time - start_time, "seconds")
return wrapper
@timer
def sort(arr):
merge_sort(arr)
if __name__ == "__main__":
arr = [64, 34, 25, 12, 22, 11, 90]
sort(arr)
print("Sorted array:", arr)
```
在上面的代码中,`merge_sort()` 函数实现了归并排序算法,`timer()` 函数是一个装饰器,用于计算 `sort()` 函数的执行时间,`sort()` 函数调用了 `merge_sort()` 函数并打印出排序后的数组。你可以在 `arr` 数组中修改排序输入,运行代码后在控制台中查看排序耗时。
阅读全文