笔记:快速排序,精简理解版本

此理解基于某个关于快速排序的考试题:
对数组 A=(2,8,7,1,3,5,6,4)用快速排序算法的划分方法进行一趟划分后得到
的数组 A 为( ) (非递减排序, 以最后一个元素为基准元素)。 进行一趟划分的
计算时间为( ) 。

A、 (1,2,8,7,3,5,6,4)
B、 (1,2,3,4,8,7,5,6)
C、 (2,3,1,4,7,5,6,8)
D、 (2,1,3,4,8,7,5,6)
A、 0(1)
B、 0(Ign)
C、 0(n)
D、 0(nlgn)
答案是:C,C

解析过程如下:

原数组:2,8,7,1,3,5,6,4

要以最后一个元素为基准元素。所以我们的目光应该聚集到最后一位,也就是4上面!

2,8,7,1,3,5,6,4

让我们开始排序

首先:4是最后一个元素,第一下查找不需要找右边的数字,因为右边根本没有好吧(〃>皿<)。

来,左边跟我一起看过去~~,所以我们要看的是:2,8,7,1,3,5,6

因为是升序,所以从左往右先找到一个比4大的兄嘚,让我康康是谁!

就是你了,老八:8!,发动技能:终极-奥义之交换术!

于是就成这样了:2,4,7,1,3,5,6,8

然后我们发现,左边已经没有任何一个比4更大的数,所以目光放到右边,也就是7,1,3,5,6,8

敲黑板:注意!现在是右边,右边都是些什么人物,都应该是4的大哥对吧,所以要把4的小弟全部找出来!

要么从左往右,要么从右往左,所以我们从右边倒数第二位开始找。

Σ(⊙▽⊙"a)为什么是倒数第二?因为最后一位我们已经交换过了!

于是发现,老3,你不对劲!换,必须换!

于是就成这样了:2,3,7,1,4,5,6,8

然后我们继续找右边,肿么肥四。竟然没有了?没办法,只有找左边了

左边:2 3 7 1

左边都应该是比4小的,所以我们要找到比四大的,放到右边去(对换位置)

从左往右开始找,发现大哥:老7

换!2,3,4,1,7,5,6,8

继续找左边,我靠,左边竟然没有了。那就康康右边,右边做什么?找比4小的出来!

1,7,5,6,8。。。。

别动别动,说的就是你,1号,出列!

2,3,1,4,7,5,6,8

然后再找,发现无论左边还是右边都符合规则(左边小于基数,右边大于基数!)

第一轮就换完了,得到的结果也就是:2,3,1,4,7,5,6,8。所以选C

如果有理解错的地方,请各位尽情指出,别骂就行。(手动害怕~~~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值