分治算法快速排序python交换位置for循环
时间: 2023-07-06 21:19:34 浏览: 103
以下是使用分治算法实现快速排序并使用 Python 进行位置交换的示例代码:
```
def quick_sort(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 quick_sort(left) + [pivot] + quick_sort(right)
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_arr = quick_sort(arr)
print("原始数组:", arr)
print("排序后的数组:", sorted_arr)
```
在这个例子中,我们定义了一个名为 `quick_sort` 的函数,该函数使用分治法实现快速排序。对于每个待排序数组,我们首先选择一个基准元素 `pivot`,然后将所有小于 `pivot` 的元素放入一个左侧数组 `left`,将所有大于等于 `pivot` 的元素放入一个右侧数组 `right`。最后,我们递归地对左侧数组和右侧数组进行排序,并将它们与基准元素合并以获得最终的排序结果。
在上述代码中,我们使用了 Python 的 `for` 循环来遍历整个数组,并使用 `if` 语句来将元素添加到左侧或右侧数组中。我们还使用了 `+` 运算符来将两个数组连接到一起,并使用中括号 `[ ]` 来创建一个包含基准元素的单元素数组。
最后,我们使用两个 `print` 语句将原始数组和排序后的数组打印到控制台上。
阅读全文