写一段python代码,实现快速排序
时间: 2023-09-12 12:05:03 浏览: 64
### 回答1:
# 快速排序
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)
### 回答2:
快速排序是一种常用的排序算法,其主要思想是选取一个基准数,然后将大于基准数的数放在它的右边,小于基准数的数放在它的左边,然后递归地对左右两边的序列进行排序。下面是一个用Python实现快速排序的示例代码。
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
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 = [5, 2, 8, 1, 9, 3]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
以上代码中,函数`quick_sort`接受一个数组作为参数,并返回一个经过快速排序后的新数组。在函数内部,如果数组的长度小于等于1,说明数组已经是有序的,直接返回即可。否则,选择中间位置的数作为基准数,并按照基准数的大小将原数组分割成左、中、右三个部分。然后,递归地对左右两边的数组进行排序,并将结果与中间部分合并起来,最终得到排序后的结果。最后,通过调用测试代码中的`quick_sort`函数来验证算法的正确性,并打印排序后的数组。
### 回答3:
快速排序是一种常用的排序算法,它通过选择一个枢轴元素将待排序的数组分为左右两部分,然后递归地对左右两部分进行排序。
以下是用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 = [9, 4, 7, 2, 1, 5, 8, 3, 6]
sorted_arr = quick_sort(arr)
print("排序后的数组:", sorted_arr)
```
上述代码先考虑了特殊情况,即待排序数组的长度小于等于1时,直接返回,不再进行排序。接着选择一个枢轴元素(这里选择中间位置的元素),将数组分为三部分:小于枢轴的元素、等于枢轴的元素和大于枢轴的元素。然后递归地对左右两部分进行排序,最后将排序好的左右两部分与中间部分合并在一起。
按照上述代码,给定的数组`arr`会被快速排序并存储在`sorted_arr`变量中。最后,我们打印出来看一下排序后的数组。