快速排名新算法怎么用?(教你快速排名新算法的9个步骤)

访客4年前关于黑客接单570

快速排序,正如它的名字所体现,是在实践中已知的最快的排序算法,平均运行时间为O(NlogN),最坏的运行时间为O(N^2)。算法的基本思想很简单,然而想要写出一个高效的快速排序算法并不是那么简单。基准的选择,米素的分割等都至关重要,如果你不清楚如何优化快速排序算法,本文你不该错过。

算法思想

快速排序利用了分治的策略。而分治的基本基本思想是:将原问题划分为若干与原问题类似子问题,解决这些子问题,将子问题的解组成原问题的解。

那么如何利用分治的思想对数据进行排序呢?假如有一个米素 *** A:

  • 选择A中的任意一个米素pivot,该米素作为基准

  • 将小于基准的米素移到左边,大于基准的米素移到右边(分区操作)

  • A被pivot分为两部分,继续对剩下的两部分做同样的处理

  • 直到所有子集米素不再需要进行上述步骤

可以看到算法思想比较简单,然而上述步骤实际又该如何处理呢?

如何选择基准

实际上无论怎么选择基准,都不会影响排序结果,但是不同的选择却可能影响整体排序时间,因为基准选择不同,会导致分割的两个 *** 大小不同,如果分割之后,两个 *** 大小是几乎相等的,那么我们整体分割的次数显然也会减少,这样整体耗费的时间也相应降低。我们来看一下有哪些可选择策略。

选择之一个或者最后一个

如果待排序数是随机的,那么选择之一个或者最后一个作基准是没有什么问题的,这也是我们最常见到的选择方案。但如果待排序数据已经排好序的,就会产生一个很糟糕的分割。几乎所有的数据都被分割到一个 *** 中,而另一个 *** 没有数据。这样的情况下,时间花费了,却没有做太多实事。而它的时间复杂度就是最差的情况O(N^2)。因此这种策略是绝对不推荐的


相关文章

专家教你同步对方微信不被发现,偷偷监控对方

如何申请163邮箱账号,想必大部分朋友都较为了解,但对于商务邮箱注册,什么样的商务邮箱才能提升办公效率,让你的邮箱变的更具商务感及个性化呢?让我们一起来看下吧~ 一、更时尚的邮箱界面 邮...

手被开水烫了怎么办(一个小妙招轻松解决)

手被开水烫了怎么办(一个小妙招轻松解决)

处理方法 (1) 移离热源 (2) 检查呼吸及脉搏 (3) 检查伤者的受伤情况。 (4) 降温及处理伤口。用清水冲洗伤口,降低伤口温度及减轻痛楚,接着用消毒敷料遮盖伤处。 (5) 尽速就...

袁术称帝(袁术历史上算皇帝吗)

袁术称帝(袁术历史上算皇帝吗) 东汉末年,皇权衰微,群雄逐鹿。在众多诸侯中,袁术是很特别的怪咖。在《三国志》中,名士孔融评价袁术“冢中枯骨”,以此表达不屑。袁术如果只是争地盘,那他只不过普通的军阀而...

网站渗透教你轻轻松监听媳妇电话手机微信

在现如今的社会互联网技术的迅速发展趋势,有那样一类人,那就是网络黑客,她们一直不露痕迹的被大家界定,有些人资询说想寻找媳妇的电話微信聊了一些哪些,究竟...

找ip黑客-黑客与程序员的谁更牛(黑客一般是网络工程师还是程序员)

找ip黑客-黑客与程序员的谁更牛(黑客一般是网络工程师还是程序员)

找ip黑客相关问题 寻找真正的黑客大户相关问题 wifi网络黑客怎么用 黑客攻击手段可分为(黑客的攻击手段有) 攻击腾讯的黑客叫什么 肯尼亚打工一年多少钱(肯尼亚电压是多少...

xd股票是什么意思(股票加xd是什么意思)

有股民看到有股票名称前面加了xd两个字母,但却不知道是什么意思。那究竟股票前面加xd是什么意思?当股票名称前出现XD字样时,表示当日是这只股票的除息日,XD是英语Exclud(除去)Dividend(...