快速排序是最常用的一种排序,因为它可以取得比较好的平均性能。快速排序是一种递归算法。采用了分而治之的思想。
它的核心步骤是:
1. 把一个序列分成左右两个部分,要求左边的数都比分界点小或相等,右边的数都比分界点的数大。
2. 对步骤1分出来的左右两个部分同样执行1到2的步骤。
那么如何把一个序列分成两个部分呢?设定两个指针i和j,还要设定一个初始比较值x。可以取序列最后的值为x。i左边的都比x小。j是迭代指针,从序列开头到倒数第二个数开始迭代:
1. 如果j指向的值比x大,j下移一位,i不动
2. 如果j指向的值比x小,把i下移一位,再把i和j指向的值交换。然后j下移一位
3. 最后把最后的值和i+1的值交换。
也就是逐步的将比x小的值加到i的队列中来
引用
# python quick sort
def exchange(i, j):
x = array[i]
array[i]=array[j]
array[j]=x
def partition(p,r):
x=array[r]
i=p-1
for j in range(p,r-1,1):
if array[j]<x:
i=i+1
exchange(i, j)
exchange(r,i+1)
return i+1
def quickSort(p,r):
if p<r:
x=partition(p,r)
quickSort(p,x-1)
quickSort(x+1,r)
array=[2,5,3,10,8]
quickSort(0,4)
print array
分享到:
相关推荐
在Python中实现快速排序,我们通常利用递归来分解问题,然后合并结果。快速排序的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续...
python编写 快速排序 Quick Sort
python 一行代码实现的快速排序 quick sort
1. **排序算法**:`Algorithms`库提供了多种排序算法的实现,如快速排序(Quick Sort)、归并排序(Merge Sort)、插入排序(Insertion Sort)、选择排序(Selection Sort)、堆排序(Heap Sort)和冒泡排序(Bubble...
在Python中实现快速排序,我们可以定义一个函数,如`quick_sort()`,它接受一个列表作为参数。首先,我们需要选择一个基准元素(pivot),通常选择列表的第一个元素。然后,我们遍历列表,将小于基准的元素放在基准...
在Python中,还有其他更高效的排序算法,如快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort),它们在处理大数据集时表现更优,但实现起来相对复杂。Python标准库中的`sorted()`函数和列表的`...
这里我们关注的是Python语言中的两种高效排序算法:快速排序和堆排序。这两种算法都以其优秀的平均时间复杂度O(n log n)而闻名。 首先,让我们详细了解一下快速排序。快速排序是由英国计算机科学家C.A.R. Hoare在...
在Python中,虽然有内置的`sorted()`函数和`list.sort()`方法,它们基于Timsort算法,效率也很高,但了解并掌握快速排序可以帮助理解排序算法的基本原理,同时在某些特定场景下,快速排序可能更适用。 总结一下,...
在Python中,快速排序的代码实现可能如下: ```python def quick_sort(arr): if len(arr) return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x ] middle = [x for x in arr if x == pivot] ...
在这个Python实现的压缩包中,包含了一个名为"Python实现快速排序.py"的文件,我们可以深入探讨一下快速排序的原理以及如何用Python来实现它。 快速排序的步骤如下: 1. **选择枢轴元素(Pivot Selection)**:从...
**快速排序(Quick Sort)** 快速排序是由C.A.R. Hoare在1960年提出的,是一种高效的排序算法,它的基本思想是分治法。快速排序首先选择一个基准值,然后将数组分为两部分:一部分的所有元素都比基准值小,另一部分...
以下是一个简单的快速排序的Python实现: ```python def quick_sort(arr): if len(arr) return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x ] middle = [x for x in arr if x == pivot] ...
### 四、快速排序(Quick Sort) 快速排序是一种非常高效的排序算法,其核心思想是分治法。快速排序首先选取一个基准值,然后将数组分为两部分:一部分的所有元素都比基准值小;另一部分的所有元素都比基准值大。接...
6. **快速排序(Quick Sort)**:快速排序也是分治策略的典型应用,选取一个“基准”元素,将数组分为两部分,一部分所有元素小于基准,另一部分所有元素大于基准,然后对这两部分递归进行快速排序。Python实现时,...
在这个示例中,我们定义了一个递归函数 `quick_sort`,用于对输入的数组进行快速排序。函数的输入参数是数组 `arr`,函数的返回值是排序后的数组。 示例用法: ``` arr = [5, 2, 9, 1, 7, 6, 3] sorted_arr = quick...
在Python中实现快速排序,我们可以定义一个函数,通常命名为`quick_sort`,这个函数接收一个列表作为参数。快速排序的核心在于选择一个基准元素(pivot)并进行分区操作。以下是快速排序算法的基本步骤: 1. **选择...
在给定的文件中,介绍了几种排序算法,包括插入排序(Insertion Sort)、合并排序(Merge Sort)和快速排序(Quick Sort)。以下是对这些知识点的详细说明。 **插入排序(Insertion Sort)** 插入排序的基本思想是...
快速排序是一种高效的排序算法,...以上就是关于快速排序在Python、Java和C++中的实现方法,这些实现都展示了快速排序的基本逻辑和操作步骤。通过深入理解并实践这些代码,可以进一步提高对排序算法的理解和编程能力。
在这两个Python脚本中,`insertion_sort`和`quick_sort`分别是插入排序和快速排序的实现。这两个算法虽然都能对数组进行排序,但它们的时间复杂度和适用场景有所不同。插入排序在处理小规模或者近乎有序的数据时效率...