当前位置:首页 > 前端设计 > 正文

排序算法的稳定性,算法的时间复杂度取决于

排序算法的稳定性,算法的时间复杂度取决于

这篇文章给大家聊聊关于排序算法的稳定性,以及算法的时间复杂度取决于对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。数据结构的排序算法中,哪些排序是稳定的,哪些排序...

这篇文章给大家聊聊关于排序算法的稳定性,以及算法的时间复杂度取决于对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

数据结构的排序算法中,哪些排序是稳定的,哪些排序是不稳定的

一、稳定排序算法1、冒泡排序2、鸡尾酒排序3、插入排序4、桶排序5、计数排序6、合并排序7、基数排序8、二叉排序树排序二、不稳定排序算法1、选择排序2、希尔排序3、组合排序4、堆排序5、平滑排序6、快速排序排序(Sorting)是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。一个排序算法是稳定的,就是当有两个相等记录的关键字R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。不稳定排序算法可能会在相等的键值中改变纪录的相对次序,但是稳定排序算法从来不会如此。不稳定排序算法可以被特别地实现为稳定。做这件事情的一个方式是人工扩充键值的比较,如此在其他方面相同键值的两个对象间之比较,就会被决定使用在原先数据次序中的条目,当作一个同分决赛。然而,要记住这种次序通常牵涉到额外的空间负担。

3-6碳的环烷烃的稳定性顺序

环己烷最稳定,其次是环戊烷,环丁烷,环丙烷。因为环己烷的张力最小,是稳定。五元,六环都比较稳定。三,四元环不稳定。

一级碳正离子稳定性排序规则

当中心碳正离子在环上时,其稳定性顺序为:环丙基正离子<环丁基正离子<环戊基正离子<环己基正离子。

这主要是因为随着环上碳原子数量的增加,C―C―C键角逐渐增加,环张力减小,当然,取代基的电子效应也会产生相应影响,这一结论的定性分析与表1中的定量数据完全一致。

什么是快速排序

1.如何理解快速排序

快速排序是对冒泡排序的一种改进,它是不稳定的。由C.A.R.Hoare在1962年提出的一种划分交换排序,采用的是分治策略(一般与递归结合使用),以减少排序过程中的比较次数,它的最好情况O(nlogn),最坏情况O(n^2),平均时间复杂度为O(nlogn)。分而治之不是一种解决问题的算法,而是一种希望问题分解,将复杂的问题划分为多个简单问题来解决的思想。

?

快速排序的基本思想:

?

选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小。然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以达到全部数据变成有序。

?

快速排序的步骤:

?

(1)从数列中挑出一个"基准值"(pivot)。

(2)重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。

(3)递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

?

注意:基准元素/左游标/右游标都是针对单趟排序而言的,也就是说在整个排序过程的多趟排序中,各趟排序取得的基准元素/左游标/右游标一般都是不同的。对于基准元素的选取,原则上是任意的,但是一般我们选取数组中第一个元素为基准元素(假设数组随机分布)。

?

2.快速排序的过程描述

(1)选择最右边的元素为基准数7;

(2)将小于7的放在左边,大于7的放在右边,然后将基准数放到中间;

(3)然后再重复操作从左边的数组选择一个基准点2;

(4)3比2大则放到基准树的右边;

(5)右边的数组也是一样选择12作为基准数,15比12大所以放到了12的右边;

(6)最后出来的结果就是从左到右2,3,7,12,15了。

π键的稳定性排序

有几个定性的原则:

1、形成大π键原子的平面性。平面性越好,π键越稳定。

2、形成大π键原子之间的键长,键长越小,形成大π键电子云重合越多,π键越稳定。

3、是否存在共轭。由于π键电子流动性较大,存在共轭的情况越多,大π键就越稳定。

文章到此结束,如果本次分享的排序算法的稳定性和算法的时间复杂度取决于的问题解决了您的问题,那么我们由衷的感到高兴!

最新文章