将列表[3,6,7,2,1,4,5]升序排序
时间: 2024-03-18 08:35:36 浏览: 14
以下是两种升序排序的方法:
1.使用希尔排序
```python
def shellSort(arr):
n = len(arr)
gap = n // 2
while gap > 0:
for i in range(gap, n):
temp = arr[i]
j = i
while j >= gap and arr[j - gap] > temp:
arr[j] = arr[j - gap]
j -= gap
arr[j] = temp
gap //= 2
return arr
arr = [3, 6, 7, 2, 1, 4, 5]
print("排序前:", arr)
print("排序后:", shellSort(arr)) # 输出:[1, 2, 3, 4, 5, 6, 7]
```
2.使用归并排序
```python
def mergeSort(arr):
if len(arr) > 1:
mid = len(arr) // 2
L = arr[:mid]
R = arr[mid:]
mergeSort(L)
mergeSort(R)
i = j = k = 0
while i < len(L) and j < len(R):
if L[i] < R[j]:
arr[k] = L[i]
i += 1
else:
arr[k] = R[j]
j += 1
k += 1
while i < len(L):
arr[k] = L[i]
i += 1
k += 1
while j < len(R):
arr[k] = R[j]
j += 1
k += 1
return arr
arr = [3, 6, 7, 2, 1, 4, 5]
print("排序前:", arr)
print("排序后:", mergeSort(arr)) # 输出:[1, 2, 3, 4, 5, 6, 7]
```