数据结构----八大排序


一、时间复杂度+空间复杂度

在这里插入图片描述

口诀: “插冒归”,它很稳 "插冒归"喜欢选冒插,插完就方了(平均情况O(n^2))

二、八大排序

直接插入排序

一种最简单的排序方法,依次将每个元素插入到一个有序的序列中。

在这里插入图片描述

1.采用顺序查找法查找插入位置

在这里插入图片描述

代码实现:
在这里插入图片描述

2.直接插入排序,使用“哨兵”法

在这里插入图片描述

折半插入排序

代码实现:

在这里插入图片描述

希尔排序

在这里插入图片描述

对每一个子表进行直接插入排序
eg.38和13是子表,连续存储空间(逻辑关系,不是真的连续存储),依旧是顺序表,13插入38之前,38往后移一位,即交换位置

步长 d=n/2;
d=d/2;

代码实现:

在这里插入图片描述

希尔排序的速度通常要比直接插入排序块,它是一种不稳定的排序算法。

冒泡排序

在这里插入图片描述

代码实现:

在这里插入图片描述

从后两两对比,更小的往前放。

快速排序

在这里插入图片描述
在这里插入图片描述

口诀解析:选择第一个元素将它移至临时变量temp中作为基准元素,且离开这个位置,用low指针指向空位,最右边的第一个元素用high指针指向它,与temp比较大小,若大于等于它元素不动,high指针往前指一个继续比较,若小于temp则放入low的空位中,并且现在换成low指针去指向下一个数据,继续与temp比较大小,若小于等于则low指针往后移,若大于temp放在右边high处的空位,又改成high指针指向的元素与temp比较大小…当low和high指向同一位置是,将基准元素放入那个位置。
总之这是一个low++,high–的过程,元素移动则换针比较。1

代码实现:

在这里插入图片描述

简单选择排序

在这里插入图片描述

该算法在n个元素中通过n-1次比较找出最小元素

堆排序

在这里插入图片描述

归并排序

在这里插入图片描述
在这里插入图片描述

基数排序

1.看个位
2.看十位
不需要进行关键字的比较
它是链式存储,在排序中是队列的数据结构,非常稳定.


最后,码字不易,如果觉得对你有帮助的话请点个赞吧,关注我,一起学习,一起进步!

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 05:22:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 05:22:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 05:22:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 05:22:01       20 阅读

热门阅读

  1. Linux常用web开源服务器

    2024-03-14 05:22:01       18 阅读
  2. Python web框架fastapi中间件的使用

    2024-03-14 05:22:01       20 阅读
  3. python控制语句-2.1

    2024-03-14 05:22:01       17 阅读
  4. 企业数字化转型:挑战、机遇与整合

    2024-03-14 05:22:01       20 阅读
  5. 在docker中使用nginx转发端口失败

    2024-03-14 05:22:01       19 阅读
  6. Unity中计算两个三维坐标点的各种方法

    2024-03-14 05:22:01       20 阅读
  7. Oracle DBMS_LOCK

    2024-03-14 05:22:01       14 阅读
  8. zabbix-server-pgsql docker镜像备忘

    2024-03-14 05:22:01       19 阅读
  9. 不同数据库中sql如何添加数据

    2024-03-14 05:22:01       17 阅读
  10. MySQL学习记录

    2024-03-14 05:22:01       19 阅读
  11. Vim 编辑器|批量注释与批量取消注释

    2024-03-14 05:22:01       20 阅读