给出一个待排序序列{11,20,13,5,21,19,55,60},采用快速排序算法升序排列该序列。写出排序的每一趟。代码
时间: 2024-06-13 18:08:36 浏览: 11
以下是给出待排序序列{11,20,13,5,21,19,55,60},采用快速排序算法升序排列该序列的程和代码:
第一趟排序:
选取基准值为11,将序列分为{5, 20, 13, 11, 21, 19, 55, 60}和{}两个子序列。
左子序列:选取基准值为5,将序列分为{5, 20, 13, 11}和{}两个子序列。
左子序列:选取基准值为5,将序列分为{5}和{20, 13, 11}两个子序列。
右子序列:选取基准值为20,将序列分为{20, 13, 11}和{}两个子序列。
左子序列:选取基准值为20,将序列分为{20}和{13, 11}两个子序列。
右子序列:选取基准值为13,将序列分为{13}和{11}两个子序列。
左子序列:选取基准值为13,将序列分为{13}和{11}两个子序列。
右子序列:选取基准值为21,将序列分为{21, 19, 55, 60}和{}两个子序列。
左子序列:选取基准值为21,将序列分为{21, 19}和{55, 60}两个子序列。
左子序列:选取基准值为21,将序列分为{21}和{19}两个子序列。
右子序列:选取基准值为55,将序列分为{55}和{60}两个子序列。
最终得到升序排列的序列为{5, 11, 13, 19, 20, 21, 55, 60}。
以下是代码实现:
```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)
arr = [11, 20, 13, 5, 21, 19, 55, 60]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)