用python写一个排序函数
时间: 2024-04-29 16:24:31 浏览: 13
以下是一个使用Python编写的快速排序函数:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
```
该函数使用了快速排序算法,首先选择一个基准值(pivot),将数组分为小于等于基准值和大于基准值的两部分,然后递归地对这两部分进行排序,并将结果合并起来。这个算法的时间复杂度为O(nlogn)。
相关问题
请用python写一个排序函数
好的,这里给你一个快速排序的实现:
```python
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)
```
这个函数的时间复杂度为 O(n log n),它通过递归地将数组分成左半部分、中间部分和右半部分,然后对左右两个部分分别进行排序,最后将三个部分合并起来。
用Python写一个冒泡排序函数
当然可以,以下是使用Python编写的冒泡排序函数:
```python
def bubble_sort(array):
n = len(array)
for i in range(n):
for j in range(0, n-i-1):
if array[j] > array[j+1]:
array[j], array[j+1] = array[j+1], array[j]
return array
```
调用该函数,传入需要排序的数组即可:
```python
array = [64, 34, 25, 12, 22, 11, 90]
sorted_array = bubble_sort(array)
print("排序后的数组为:", sorted_array)
```
输出结果为:
```
排序后的数组为: [11, 12, 22, 25, 34, 64, 90]
```