#### 4.从文件中读取数据(第3题中的文件),使用归并排序或快速排序进行排序,然后写入另外一个文件中python实现
时间: 2023-06-27 10:02:17 浏览: 89
以下是使用归并排序和快速排序分别对文件中的数据进行排序,并将排序后的结果写入另一个文件中的Python实现代码。
```python
# 归并排序实现
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
return merge(left, right)
def merge(left, right):
result = []
i, j = 0, 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 += left[i:]
result += right[j:]
return result
# 快速排序实现
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)
# 读取文件中的数据
with open("data.txt", "r") as f:
data = f.readlines()
# 将字符串类型转换为整数类型
data = [int(x.strip()) for x in data]
# 使用归并排序对数据进行排序
sorted_data = merge_sort(data)
# 将排序后的结果写入文件中
with open("sorted_data_merge.txt", "w") as f:
for num in sorted_data:
f.write(str(num) + "\n")
# 使用快速排序对数据进行排序
sorted_data = quick_sort(data)
# 将排序后的结果写入文件中
with open("sorted_data_quick.txt", "w") as f:
for num in sorted_data:
f.write(str(num) + "\n")
```
注意,上面的代码中使用了`with`语句来打开文件,这样可以确保在使用完文件后自动关闭文件。同时,由于读取的数据是字符串类型,需要使用`strip()`方法去掉每行末尾的换行符,并将其转换为整数类型进行排序。最后,使用`write()`方法将排序后的结果写入文件中。