数据结构的排序方法都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构的排序方法都有哪些?相关的知识,希望对你有一定的参考价值。

冒泡排序,快速排序,堆排序。

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。

快速排序(Quicksort)是对冒泡排序的一种改进。

快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。

参考技术A 1、插入排序(直接插入排序和希尔排序)
2、选择排序(直接选择排序和堆排序)
3、交换排序(冒泡排序和快速排序)
4、归并排序
5、基数排序
直接插入排序:逐个将后一个数加到前面的排好的序中。在直接插入排序过程中,对其中一个记录的插入排序称为一次排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列需要进行n-1次排序才能完成整个序列的排序。时间复杂度为O(n2)。
希尔排序:希尔排序又称缩小增量排序,增量di可以有各种不同的取法,但最后一次排序时的增量必须为1,最简单可取di+1=di/2(取小)。时间复杂度为O(n(log2n)2)。
直接选择排序
说明:每次将后面的最小的找出来插入前面的已排好的序中。同理,具有n个记录的序列要做n-1次排序。
时间复杂度为O(n2)。
冒泡排序:两个两个比较,将大的往后移。通过第一次冒泡排序,使得待排序的n个记录中关键字最大的记录排到了序列的最后一个位置上。然后对序列中前n-1个记录进行第二次冒泡排序。。。对于n个记录的序列,共需进行n次冒泡排序。时间复杂度为O(n2)。
快速排序:又叫分区交换排序,是对冒泡排序方法的一种改进。时间复杂度为O(nlog2n)。
归并排序:将两个或两个以上的有序数据序列合并成一个有序数据序列的过程。时间复杂度为O(nlog2n)。

sqlserver支持的字符集都有哪些

参考技术A 排序规则指定表示数据集中每个字符的位模式。排序规则还决定用于数据排序和比较的规则。SQL Server 2005 支持在单个数据库中存储具有不同排序规则的对象,即 SQL Server 数据库中每列都可以有各自的排序规则。对于非 Unicode 列,排序规则设置指定数据的代码页,从而指定可以表示哪些字符。数据可以在 Unicode 列之间无缝地移动。在非 Unicode 列之间移动数据时,数据不能无缝地移动,而必须经当前代码页转换。如果 Transact-SQL 语句运行于各自都具有不同排序规则设置的数据库的上下文中,则其运行结果可能会不同。如果可能,最佳实践应包括对组织使用标准化排序规则。如果已在组织中的所有系统上使用标准的排序规则设置,则无需在每个字符或 Unicode 表达式中显式地指定排序规则。如果必须使用具有不同排序规则和代码页设置的对象,则必须对查询进行编码以考虑排序规则优先级的规则。排序规则的特征是区分语言、区分大小写、区分重音、区分假名以及区分全半角。Unicode 使用两个而不是一个字节来表示语言的字符,这使得单个 Unicode 字符集可以表示世界上几乎所有书面语言。如果存储的字符数据反映多种语言,则应始终使用 Unicode 数据类型(nchar、nvarchar 和 ntext),而不要使用非 Unicode 数据类型(char、varchar 和 text)。使用 Unicode 可以体验到显著的性能提升,因为所需的代码页转换较少。非 Unicode 数据类型有明显的局限性,因为非 Unicode 计算机只能使用单个代码页。若要全面评估与使用 Unicode 或非 Unicode 数据类型相关的问题,必须测试您的具体方案以确定在特定环境下的性能差异大小。至少应对站点排序规则进行标准化,并尽可能部署 Unicode 服务器和客户端。

以上是关于数据结构的排序方法都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

python中都有哪些简单的算法?

sqlserver支持的字符集都有哪些

Python中对列表进行排序的方法都有哪些呢?

python分类算法都有哪些

MYSQL数据库服务器性能分析的方法命令都有哪些

医学统计学 rsr法和topsis法相比较都有哪些优点