| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 基排序 C++实现 LSD 递增递减 两种思想 MSD略 -> 正文阅读 |
|
[C++知识库]基排序 C++实现 LSD 递增递减 两种思想 MSD略 |
LSDhttps://blog.csdn.net/qq845579063/article/details/51447772 MSDhttps://blog.csdn.net/u011948899/article/details/78027838 自己写的LSD模板 vector实现解析注释挺详细的,基本还原了上述博客的思想(模拟)
网上的LSD模板 数组实现解析递增递减关键在于count,注释上解释了如何改变递增递减 大家可以先看一下模板,其他地方跟我自己写的模板差不多,注释详细,不懂的请在评论区留言。 然后我重点讲解两句话 第一句
问题:为什么要这么做? 第二句
这两句话属于一个模块
问题:为什么j要从后往前遍历?? 本着理解循环要从内往外的原则,我们先讲问题1,再讲问题2 问题1这句话我研究了两天才看懂 ? ?由于处理了前缀和:
因此对每一位位数k而言,count[k]的下标都可以对应到temp中去。 你可能会疑惑:我记录count的时候并没有把data的数据存入count中,count是怎么知道哪一位存放的是什么元素呢?其实你让count[k]++的时候,遍历数组是按一定顺序的。第一次遍历就是原数组的顺序,第二次遍历是第一次排序后的顺序,以此类推,而一旦遍历顺序确定,再给你下标,你难道无法得知这个数据么?知二求一,显然可以。所以我们不需要把具体数据加进去。 而count是从1开始计数的,所以count[k]-1是从0开始,减1就是为了让temp从0开始计数 temp与count的对应关系正如上图蓝笔标注一样,蓝笔标的是temp的下标,以第一次模拟来说,count[1]=1,count[2]=3,count[4]=4,count[5]=5,……,而count的每一位下标对应的元素也如图所示,正如上面解析所言,加入count的逻辑顺序确定,下标确定,具体元素自然确定。
加入的逻辑顺序就是data[j],下标就是count[k]-1,那么,tmp数组顺理成章地构建完毕 之后再把tmp赋值给data就行了,一次迭代完成 问题2因为我们把data[]数组存放到count[]数组的顺序是从前往后放的,如果取出count[]的数据的顺序也是从前往后,那么就会导致小数先被取出,大数后被取出(这里的大小是上一轮排序后得到的相对大小,在第一轮两种取法没区别,第二轮起区别很大)。每次取数会导致count--,因此后取出来的大数实际上在tmp[]中是排在小数前面的,即后发先至。正常顺序是小数排在大数前面!因此,我们让count[]的小数后被取出排在tmp[]前面的位置,大数先被取出排在靠后的位置。 模板
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/27 5:15:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |