python折半插入排序,简单选择排序,快速排序算法代码实现,要求有自己输入测试结果
时间: 2023-07-11 15:40:15 浏览: 66
Python实现的直接插入排序算法示例
5星 · 资源好评率100%
好的,下面是代码实现和测试结果:
折半插入排序:
```python
def binary_insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
left, right = 0, i - 1
while left <= right:
mid = (left + right) // 2
if key < arr[mid]:
right = mid - 1
else:
left = mid + 1
for j in range(i - 1, left - 1, -1):
arr[j + 1] = arr[j]
arr[left] = key
return arr
# 测试结果
arr = [3, 1, 4, 2, 5]
sorted_arr = binary_insertion_sort(arr)
print(sorted_arr) # [1, 2, 3, 4, 5]
```
简单选择排序:
```python
def selection_sort(arr):
for i in range(len(arr)):
min_index = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
# 测试结果
arr = [3, 1, 4, 2, 5]
sorted_arr = selection_sort(arr)
print(sorted_arr) # [1, 2, 3, 4, 5]
```
快速排序:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = [x for x in arr[1:] if x < pivot]
right = [x for x in arr[1:] if x >= pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
# 测试结果
arr = [3, 1, 4, 2, 5]
sorted_arr = quick_sort(arr)
print(sorted_arr) # [1, 2, 3, 4, 5]
```
以上三个算法的测试结果均为输入数组的升序排列。
阅读全文