1 / 8
文档名称:

数据结构经典七种排序方法.pdf

格式:pdf   大小:172KB   页数:8页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构经典七种排序方法.pdf

上传人:小sjj 2022/8/10 文件大小:172 KB

下载得到文件列表

数据结构经典七种排序方法.pdf

相关文档

文档介绍

文档介绍:算法名称:选择排序
算法定义:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的
数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
算法类型:不稳定排序
算法时间复杂度:O===

算法名称:shell排序
算法定义:在直接插入排序算法中,每次插入一个数,使有序序列只增加 1个节点,并且对
插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为增量)的数,使得数移动时
能跨过多个元素, 则进行一次比较就可能消除多个元素交换。 1959年在以他名
字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量 d分成若干组,
每组中记录的下标相差 ,然后再用一个较小的增量对它进行,
在每组中再进行排序。当增量减到 1时,整个要排序的数被分成一组,排序完成。下面的函数是一个希尔排序算法的一个实现,初次取序列的一半为增量,以后每次减半,直
到增量为 1。
算法类型:不稳定排序算法
算法时间复杂度:O()--[n的 ]
算法适用场景:一般不用 shell排序
算法代码:
void shell_sort(int *x, int n)
{
int h, j, k, t;

for (h=n/2;控制增量 h>0;*/ h=h/2) /*
{
for 这个实际上就是上面的直接插入排序(j=h; j <n; j++)*/ /*
{
t = *(x+j);
for (k=j-h; (k>=0 && t <*(x+k)); k-=h)
{
*(x+k+h) = *(x+k);
}
*(x+k+h) = t;
}
}
}

=======================================================================

=======================================================================

算法名称:快速排序
算法定义:快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,使得
排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确
位置,而待排序序列的长度可能只减少 1。快速排序通过一趟扫描,就能确保某个数(以它
为基