用python语言写一个快速排序
时间: 2023-03-08 17:12:36 浏览: 85
快速排序是一种分治算法,它的主要思想是通过一个分界值来将数组划分成两个子序列,左子序列的所有元素都小于分界值,右子序列的所有元素都大于分界值,然后分别对两个子序列递归地调用快速排序。
以下是用 Python 实现的快速排序代码:
```
def quick_sort(array):
if len(array) <= 1:
return array
pivot = array[0]
left = [x for x in array[1:] if x <= pivot]
right = [x for x in array[1:] if x > pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
```
相关问题
用python写一个快速排序
快速排序是一种常用的排序算法,可以用 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)
arr = [3, 6, 1, 8, 2, 9, 4, 7, 5]
print(quick_sort(arr))
这段代码会输出一个已经排好序的数组。
可以用Python写一个快速排序吗
当然可以,Python是一种高级编程语言,支持许多种算法和数据结构,其中包括快速排序。
下面是一个使用Python实现的快速排序算法的示例代码:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
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)
```
这个实现使用了递归的方式,将原始数组分割为左右两个子数组,然后对子数组分别进行排序,最后将两个有序的子数组合并成一个有序数组。这个实现的时间复杂度为 O(nlogn)。
使用方式非常简单,只需要传入需要排序的数组即可。比如:
```python
arr = [5, 2, 6, 0, 3, 9, 1, 7, 4, 8]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
输出结果为:
```python
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
```
阅读全文