IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【数据结构】内排序小结 -> 正文阅读

[数据结构与算法]【数据结构】内排序小结

“ Ctrl AC!一起 AC!”

目录

排序码与关键码

插入排序

直接插入排序

二分法插入排序

?表插入排序

Shell插入排序(希尔排序)

选择排序

直接选择排序

树型选择排序

堆排序?

交换排序

冒泡排序

快速排序

快速排序

归并排序

基数排序


排序码与关键码

排序码:以此码作为比较进行排序?

关键码:能唯一标识一个记录的字段称为关键码

比如(可能不恰当)

a b c d 这一序列

排序码是它们在字母表中的顺序

关键码是它们本身"a" "b" "c" "d"

插入排序

插入排序的基本方法是:将待排序文件中的记录,逐个地按其排序码值的大小插入到目前已经排好序的若干个记录组成的文件中的适当位置,并保持新文件有序。

直接插入排序

思路:初始可认为文件中的第一个记录已排好序,然后将第二个到第n个记录依次插入到已排序的记录组成的文件中。

将当前待排序的元素与已排序好的元素序列作比较,若已排好序的序列的最后一个元素小于等于当前元素,则当前元素的排序结束,轮到当前元素的下一个元素排序,否则,已排好序的序列的最后一个元素往后移一位继续将当前元素与已排好序的序列的倒数第二个元素进行比较。下标为0处放一个当前元素是为了防止越界。

二分法插入排序

思路:在找到第i个记录的插入位置时,前i-1个记录已排序,将第i个记录的排序码key[i]和已排序的前i-1个的中间位置记录的排序码进行比较,如果key[i]小于中间位置记录排序码,则可以在前半部分继续使用二分法查找,否则在后半部分继续使用二分法查找。直到查找范围为空,即可确定key[i]的插入位置。

?表插入排序

思路:表插入排序将在不进行记录移动的情况下,利用存储结构有关信息的改变来达到排序的目的。为此,可以给每个记录附设一个指针域 link,它的类型为整型,表插人排序的思路是,在插人第i个记录R,时,R, R2, ...... Ri-1已经通过各自的指针域link按排序码不减的次序连接成一个 (静态链)表,将记录R;的排序码key;与表中已经排好序的排序码从表头向右、或称向后依次比较,找到R,应插人的位置,将其插人在表中,使表中各记录的排序码仍然有序。

下标0处的link域指向排好序的第一个元素,其他下标的link域指向该元素的下一个元素,最后一个元素的link域指向0

Shell插入排序(希尔排序)

选择排序

思想:每次从待排序的文件中选择出排序码最小的记录,将该记录放于已排序文件的最后一个位置,直到已排序文件记录个数等于初始待排序文件的记录个数为止。

直接选择排序

首先从所有n个待排序记录中选择排序码最小的记录,将该记录与第一个记录交换,再从剩下的n-1个记录中选出排序码最小的记录和第2个记录交换。重复这样的操作直到剩下两个记录,再从中选出排序码最小的记录和第n-1个记录交换。

树型选择排序

参考:树型选择排序https://blog.csdn.net/qq_16234613/article/details/52675953?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%A0%91%E5%9E%8B%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-52675953.142%5Ev21%5Econtrol,157%5Ev15%5Enew_3&spm=1018.2226.3001.4187

堆排序?

参考:堆排序https://blog.csdn.net/m0_62434776/article/details/122930566

交换排序

思路:对待排序记录两两进行排序码比较,若不满足排序顺序,则交换这对记录,直到任何两个记录的排序码都满足排序要求为止。

冒泡排序

具体的做法是:第1趟,对所有记录从左到右每相邻两个记录的排序码进行比较,如果这两个记录的排序码不符合排序要求,则进行交换,这样一趟做完,将排序码最大者放在最后一个位置(即该排序码对应的记录最终应该放的位置).第2趟对前下的n-1个待排序记录重复上述过程,又将个排序码放于最终位置,反复进行n-1次, 可n-1个排序码对应的记录放至最终位置,剩下的即为排序码最小的记录, 它在第1的位置处。如果在某一趟中, 没有发生交换,则说明此时所有记录已经按排序要求排列完毕,排序结束。

快速排序

快速排序icon-default.png?t=M5H6https://blog.csdn.net/qq_40941722/article/details/94396010?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165603747316782184657182%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165603747316782184657182&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-94396010-null-null.142^v21^control,157^v15^new_3&utm_term=%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187


归并排序

归并排序icon-default.png?t=M5H6https://blog.csdn.net/k_koris/article/details/80508543?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165603997416782248529922%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165603997416782248529922&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-80508543-null-null.142^v21^control,157^v15^new_3&utm_term=%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187

基数排序

基数排序icon-default.png?t=M5H6https://blog.csdn.net/xiaoxi_hahaha/article/details/113186384?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165603914616782395331284%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165603914616782395331284&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-113186384-null-null.142^v21^control,157^v15^new_3&utm_term=%E5%9F%BA%E6%95%B0%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187

感谢阅读!!!

“ Ctrl AC!一起 AC!”?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 17:03:41  更:2022-06-26 17:05:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:31:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码