用Python写一个排序
时间: 2023-05-27 09:01:23 浏览: 78
Python写的快速排序
这里提供两种常见的排序算法:冒泡排序和快速排序。
1. 冒泡排序
冒泡排序是一种比较简单的排序方法,它的基本思想是两两比较相邻的元素,如果它们的顺序错误就将它们交换过来,直到没有任何一对数字需要交换为止。
实现代码如下:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
#测试代码
test_arr = [4,3,1,6,5,2,8,7]
print(bubble_sort(test_arr))
# 输出:[1, 2, 3, 4, 5, 6, 7, 8]
```
2. 快速排序
快速排序是一种高效的排序算法,它的基本思想是通过一趟排序将待排序的记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后再分别对这两部分记录继续进行排序,以达到整个序列有序的目的。
实现代码如下:
```python
def quick_sort(arr):
if len(arr) <= 1: #递归出口
return arr
pivot = arr[0] #选择第一个元素为参考值
left, right = [], []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
#测试代码
test_arr = [4,3,1,6,5,2,8,7]
print(quick_sort(test_arr))
# 输出:[1, 2, 3, 4, 5, 6, 7, 8]
```
以上两种排序算法都有优缺点,具体使用时需要根据具体情况选择。
阅读全文