
# 定义一个函数来实现快速排序def quick_sort(arr): # 如果数组为空或只有一个元素,直接返回 if len(arr) <= 1: return arr # 否则选择最后一个元素作为基准 pivot = arr[-1] # 创建两个空列表来存放小于和大于等于基准的元素 left = [] right = [] # 遍历除了基准之外的所有元素 for i in range(len(arr) - 1): # 如果当前元素小于基准,放入左边列表 if arr[i] < pivot: left.append(arr[i]) # 否则放入右边列表 else: right.append(arr[i]) # 对左右两个列表递归地进行快速排序,并将结果拼接起来返回 return quick_sort(left) + [pivot] + quick_sort(right)# 测试代码arr = [10,7,8,9,1,5]print("原始数组:", arr)sorted_arr = quick_sort(arr)print("排序后的数组:", sorted_arr)
快速排序是一种基于分治法的排序算法,它的思想是选择一个基准元素,然后将数组分成两个子数组,一个包含小于基准的元素,另一个包含大于或等于基准的元素。然后对这两个子数组递归地进行快速排序,最后合并结果。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/80983
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!