python实现插入排序和并归排序
时间: 2023-11-03 10:02:43 浏览: 45
插入排序和归并排序是两种常见的排序算法。
插入排序是一种简单直观的排序算法,其基本思想是将待排序的元素插入到已排序的序列中,从而得到一个新的有序序列。具体实现时,从第二个元素开始,将当前元素与已排序的序列从后往前比较,找到合适的位置将其插入。代码如下:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
```
归并排序是一种分治法的经典排序算法,其基本思想是将待排序的序列拆分成两个子序列,分别对两个子序列进行排序,然后将两个有序的子序列合并成一个有序序列。具体实现时,不断递归地将序列拆分成两个子序列,直到拆分到单个元素,然后再将子序列合并。代码如下:
```python
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_arr = merge_sort(arr[:mid])
right_arr = merge_sort(arr[mid:])
return merge(left_arr, right_arr)
def merge(left_arr, right_arr):
result = []
i = j = 0
while i < len(left_arr) and j < len(right_arr):
if left_arr[i] < right_arr[j]:
result.append(left_arr[i])
i += 1
else:
result.append(right_arr[j])
j += 1
result.extend(left_arr[i:])
result.extend(right_arr[j:])
return result
```
以上是使用Python实现插入排序和归并排序的代码。这两种排序算法在实际运用中都有各自的优缺点,具体使用哪种算法要根据实际情况和需求来决定。