数据结构 | 排序

插入排序


直接插入排序(空间复杂度为1,排序后稳定)

思路:

在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入,直到整个序列有序。

但我们并不能确定待排元素中究竟哪一部分是有序的,所以我们一开始只能认为第一个元素是有序的,依次将其后面的元素插入到这个有序序列中来,直到整个序列有序为止。

时间复杂度:最坏情况下为O(N*N),此时待排序列为逆序,或者说接近逆序
      最好情况下为O(N),此时待排序列为升序,或者说接近升序。
空间复杂度:O(1)


折半查找(数列应该有顺序)

时间复杂度(减少比较次数,而记录移动的次数不变)


希尔排序(缩小增量法)


交换排序


冒泡排序


快速排序


选择排序


直接选择排序


归并排序

动图演示:


基数排序

总结


时间及空间复杂度

相关推荐
YGGP5 分钟前
【每日八股】Redis篇(二):数据结构
数据结构·数据库·redis
夏末秋也凉10 小时前
力扣-回溯-46 全排列
数据结构·算法·leetcode
王老师青少年编程10 小时前
【GESP C++八级考试考点详细解读】
数据结构·c++·算法·gesp·csp·信奥赛
liuyuzhongcc13 小时前
List 接口中的 sort 和 forEach 方法
java·数据结构·python·list
计算机小白一个14 小时前
蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)
java·数据结构·蓝桥杯
卑微的小鬼15 小时前
数据库使用B+树的原因
数据结构·b树
cookies_s_s15 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
醉城夜风~16 小时前
[数据结构]双链表详解
数据结构
gyeolhada17 小时前
2025蓝桥杯JAVA编程题练习Day5
java·数据结构·算法·蓝桥杯
阿巴~阿巴~17 小时前
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
开发语言·数据结构·c++·算法·宽度优先