已知一个数组arr,设计程序,要求利用快速排序
时间: 2023-10-17 16:02:49 浏览: 133
快速排序是一种常用的排序算法,基于分治的思想。利用快速排序来对给定的数组arr进行排序可以通过以下步骤实现:
1. 选择一个基准值。可以选择数组的第一个元素作为基准值,也可以选择随机位置的元素作为基准值。
2. 将数组分为两部分,使得左边的元素都小于等于基准值,右边的元素都大于等于基准值。可以使用两个指针,一个指向数组的开头,一个指向数组的结尾,然后交换指针所指位置的元素,直到两个指针相遇。
3. 递归地对左右两部分进行快速排序。重复步骤1和步骤2,直到待排序的部分只有一个元素。
下面是用Python实现的快速排序的程序:
```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)
arr = [5, 2, 9, 3, 7, 1, 8, 6, 4]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
以上程序实现了快速排序算法,给定数组arr为[5, 2, 9, 3, 7, 1, 8, 6, 4],经过快速排序后得到的结果为[1, 2, 3, 4, 5, 6, 7, 8, 9]。快速排序的时间复杂度为O(nlogn),其中n为数组的长度。
阅读全文