python编写对于含有n个元素的数组分别使用快速排序和归并排序对其元素值按照递增排序。编写完整的实验程序,并采用相应数据进行测试。
时间: 2024-10-23 12:19:04 浏览: 18
Python中可以使用内置的`sorted()`函数或者`list.sort()`方法以及自定义的快速排序和归并排序算法来进行数组的排序。这里我将为你展示如何分别使用快速排序和归并排序对一个包含n个元素的列表进行递增排序。
首先,我们先定义两个自定义的排序函数:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
return merge(merge_sort(left), merge_sort(right))
def merge(left, right):
result = []
i = j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result.extend(left[i:])
result.extend(right[j:])
return result
```
接下来,我们可以创建一个测试用例,比如一个包含随机数的列表,然后对它进行排序:
```python
import random
# 创建一个包含n个元素的随机整数列表
n = 10
test_list = [random.randint(0, 100) for _ in range(n)]
print(f"Original List: {test_list}")
# 使用快速排序进行排序
sorted_quick = quick_sort(test_list)
print("Sorted (Quick Sort):", sorted_quick)
# 使用归并排序进行排序
sorted_merge = merge_sort(test_list)
print("Sorted (Merge Sort):", sorted_merge)
```
运行这个程序,你会看到原始列表及其按递增顺序排列的结果,无论是通过快速排序还是归并排序。
阅读全文