快排还能变出花儿?——浅析快排算法的2种写法(尤其考研党要特别注意)

本文探讨快速排序算法的两种不同实现方法,详细解析它们在分堆过程中的区别,尤其对于考研党,理解这两种方法的区别对于应对考试至关重要。尽管一趟排序后的顺序可能不同,但最终都能得到正确升序的排序结果。
摘要由CSDN通过智能技术生成

在数据结构和算法的学习中,一种经典的算法——快速排序算法(简称快排),由于其优秀的性能,在解决实际问题中有着特别出色的性能,同时也是计算机考研中数据结构这门课的必考算法之一。

快排的思想是一致的,但是快排的细节却可能有很多的不一样。这使得——单次排序后的结果很有可能不同。尤其在考研党中,因为考试要求写出快排的具体过程,很有可能因此得出错误的答案。

接下来我们就来看看两种快排,在结果上会有哪些不同

快排简介

大家先来了解一下快排,下面这段引自维基百科:

快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序n个项目要O(nlog n)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序O(nlogn)通常明显比其他算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地达成。

其次,快排使用的是分治的思想,用大白话来解释就是:

分治就是把一个大问题,转化为一个小问题,然后再分别对各个小问题进行分解,分解到一定很小的规模的时候,得出答案,再按照原路径一层一层的返回结果、合并结果,因此分治常常与递归结合使用。

快排的是怎么运行的

给定一个无序序列,目的是将其变成有序的。

步骤1.选定一个基准数,
步骤2.将剩余的数排成两堆

小于基准数的为一堆,大于的另一堆,两堆数内部顺序不重要。怎么分成2堆,正是此次讨论的差异所在

步骤3.将这个基准数放入中间

此时这个数的位置是排序后的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值