快速排序是一种常用的排序算法,它利用分治的思想将一个数组分成两部分,从而实现对整个数组的排序。快速排序的实现代码如下:
def quick_sort(arr, left, right): if left >= right: return pivot_index = partition(arr, left, right) quick_sort(arr, left, pivot_index - 1) quick_sort(arr, pivot_index + 1, right) def partition(arr, left, right): pivot = arr[right] i = left - 1 for j in range(left, right): if arr[j] < pivot: i += 1 arr[i], arr[j] = arr[j], arr[i] arr[i + 1], arr[right] = arr[right], arr[i + 1] return i + 1
以上代码定义了两个函数:quick_sort和partition。quick_sort函数对传入的数组arr进行递归排序,通过调用partition函数将数组分成两部分,并对这两部分分别进行排序。partition函数是关键部分,它选取数组的最后一个元素作为pivot,然后将小于pivot的元素放在pivot的左边,大于pivot的元素放在pivot的右边。最后返回pivot的索引,用于将数组分成两个部分。
在主程序中,可以这样调用快速排序函数:
arr = [4, 2, 6, 8, 3, 1, 5, 7] quick_sort(arr, 0, len(arr) - 1) print(arr)
输出结果为:[1, 2, 3, 4, 5, 6, 7, 8],即按照从小到大的顺序对数组进行了排序。
版权申明:财旺号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 1790309299@qq.com 举报,一经查实,本站将立刻删除。