快速排序的基本思想:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序。
例:
arr = [49,38,04,97,76,13,27,49,55,65],设置第一位49为key值,从右向左找到比key值小的数,把找到的数赋值给第一位数;
arr = [27,38,04,97,76,13,27,49,55,65],然后从左第一位向右找到比key值大的数,把找到的数赋值给上个从右向左找到的数;
arr = [27,38,04,97,76,13,97,49,55,65],然后从右向左,从左向右,直到left=right,跳出循环,并把key值赋值给些索引值。最后再对两边的分组进行递归。
代码:
def quick_sort(lists, left, right): #快速排序 if left >= right: #当递归调用的分组为1个数时返回列表 return lists key = lists[left] #保存key值,在一轮调用结束时,存到中间值 low = left high = right #供递归调用时使用 while left < right: #通过下面两个循环依次交替赋值并使key值两侧为大小分组 while left < right and lists[right] >= key: right -= 1 lists[left] = lists[right] while left < right and lists[left] <= key: left += 1 lists[right] = lists[left] lists[right] = key quick_sort(lists, low, left-1) #对key值左侧进行排序分组 quick_sort(lists, left+1, high) #对key值右侧进行排序分组 return lists
相关推荐
快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法....
在Python中实现快速排序,我们通常利用递归来分解问题,然后合并结果。快速排序的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续...
文件名“冒泡排序_使用python实现的冒泡排序算法”表明压缩包内的资源可能包括详细讲解、代码示例或者练习题目,帮助学习者理解和掌握冒泡排序的Python实现。 总的来说,冒泡排序是排序算法的基础,通过Python实现...
本资源聚焦于Python语言实现的各种排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序以及堆排序。下面将详细解释这些排序算法的工作原理及其在Python中的实现。 1. **冒泡排序(Bubble ...
本文将详细介绍使用Python实现的五种常见排序算法:选择排序、冒泡排序、插入排序、分割排序(快速排序)以及合并排序。 1. **选择排序**: 选择排序是最简单的排序策略之一。它通过反复遍历待排序的序列,每次...
Python作为一门广泛使用的编程语言,拥有丰富的内置函数和高效的数据结构,使得实现各种排序算法变得简单易懂。本资源"Python实现10大排序算法.rar"包含了对经典排序算法的Python实现,这对于学习和理解排序算法的...
该资源详细介绍了如何使用Python语言实现快速排序算法(Quick Sort)。快速排序是一种高效的排序算法,具有较好的平均时间复杂度O(n log n),在大多数情况下比其他排序算法表现更佳。资源中包括了快速排序的基本原理...
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
快速排序:快速排序算法的基本思想是选择一个基准元素,将数组分为两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于等于基准元素。然后递归地对这两个子数组进行快速排序,最后将...
本篇将深入探讨排序算法的目标、方法以及在Python中的实现,分为迭代算法和递归算法两个主要类别。 **一、排序算法的目标** 排序算法的主要目标是重新组织一个给定的数值列表,按照升序或降序排列其元素。这涉及到...
Python实现八大排序算法(冒泡排序、快速排序、简单插入排序、希尔排序、归并排序、基数排序、直接选_sorting_algorithm
python python_十大排序算法之快速排序
一个Python实现的快速排序算法的程序
在Python中,内置的`sorted()`函数和`list.sort()`方法使用了Timsort,这是一种混合排序算法,它结合了插入排序和其他高效的排序算法,既保证了稳定性,又能处理大部分情况下的性能问题。但在学习和理解排序算法时,...
总的来说,虽然选择排序在许多情况下不是最优解,但作为基础排序算法,理解其原理和实现对于学习更复杂的排序算法如快速排序、归并排序等是非常有帮助的。在实际开发中,根据具体需求和数据特性,选择更适合的排序...
本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法。分享给大家供大家参考,具体如下: #!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort(list): for i in range(len(list))...
在Python中实现快速排序,我们可以将其分为以下几个关键步骤: 1. **选择基准元素(Pivot Selection)**:首先,我们需要从数组中选择一个元素作为基准,这个元素将用来划分数组。通常选取第一个或最后一个元素,也...
在Python中,还有其他更高效的排序算法,如快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort),它们在处理大数据集时表现更优,但实现起来相对复杂。Python标准库中的`sorted()`函数和列表的`...