用Python写一个快速排序代码
时间: 2023-06-01 17:01:39 浏览: 96
以下是Python实现的快速排序代码:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr
else:
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 quicksort(left) + [pivot] + quicksort(right)
```
快速排序的思路是将一个数组分成两个子数组,其中一个子数组的所有元素都小于另一个子数组的所有元素,然后对这两个子数组递归地进行快速排序。在上述代码中,pivot是选定的基准元素。在一次快速排序中,我们将数组中小于pivot的元素放到左边的子数组中,将大于pivot的元素放到右边的子数组中。最后,我们将这三个数组拼接在一起,返回一个完全排序的数组。
为了实现快速排序的递归过程,我们需要将左右子数组传递给quick排序函数,直到数组的长度小于或等于1。在这种情况下,我们可以直接返回数组,因为它已经被排序。
相关问题
用Python写一个快速排序的代码
好的,以下是Python实现快速排序的代码:
```
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = []
right = []
for i in arr[1:]:
if i < pivot:
left.append(i)
else:
right.append(i)
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))
这段代码会输出一个已经排好序的数组。
阅读全文