use*_*710 23 c++ tree data-structures
不,这不是一个类的问题,我正在研究树和堆(部分排序的二叉树),我想知道如何正确定义这两个与通用数据结构相关的属性/动作.
cHa*_*Hao 17
" 排序 "基本上是一组规则,用于确定在其他项目之前或之后的项目.IE:如果对它们进行排序,则相对订单项会出现.对于强制执行排序的集合,该排序通常根据比较运算符(特别是<),接口(Java Comparable<T>),或比较回调和/或函数对象(如C++ std::less)来指定.
还有一些描述为" 有序集合 "的集合.这个词的使用略有不同,但相关的含义.这意味着该集合代表一系列项目,因此具有一些内置的订单概念.(与哈希表对比.你在哈希表中添加一些内容,如果你迭代内容,你就不知道它会出现在哪里.你知道有序集合.)列表,向量,数组等是典型的有序收藏品.但是,对于非列表示例,PHP的"数组"类型实际上是"有序映射" - 一种保留键顺序的字典类型.键出现在它们首次插入的顺序(或您上次使用它们的顺序)ksort() 迭代数组时,等等).
" 排序 "是根据给定排序实际排列项目序列的过程.它通常只对有序的集合进行...因为将一个项目置于另一个项目之前没有多大意义,这个容器没有"之前"的概念,或者不会让您首先重新排列项目.(像集合和堆这样的结构也可以使用排序,添加和删除条目会根据排序改变基础树.有人可能会争辩说它们正在逐步"排序".但这个词通常用于表示一个操作,是否一次重新安排.)
Stu*_*etz 16
非常粗略地说,一个排序指定了哪些元素应该在某个序列中的其他元素之前排序.排序是将这些元素的集合放入排序指定的顺序的过程.
(稍微容易混淆的是,也可以谈论"排序"一系列元素,这意味着将它们排序为由排序指定的某个顺序.)
更新:
在实现方面,一个很好的例子是标准容器(例如map,http://en.cppreference.com/w/cpp/container/map),它采用额外的模板参数来提供排序.默认为std::less<Key>map的情况.如果您想要自己的排序,则在创建地图时使用不同的比较器类型,而不是使用它.提供自己的比较器的常用方法是实现一个具有的比较小的结构bool operator()(const Key& lhs, const Key& rhs) const.
Nen*_*vic 12
集可以是排序的或有序的:
有序集是一个集合,其元素按照它们被添加到集合的顺序排列.请注意,这是默认情况下创建集的方式.例如:
Run Code Online (Sandbox Code Playgroud){int} S1 = {3,2,5};和
Run Code Online (Sandbox Code Playgroud)ordered {int} S1 = {3,2,5};是等价的.
有序集是一个集合,其中元素按其自然,升序(或降序)顺序排列.对于字符串,自然顺序是字典顺序.自然顺序还取决于系统区域设置.例如:
Run Code Online (Sandbox Code Playgroud)sorted {int} sortedS = {3,2,5};和
Run Code Online (Sandbox Code Playgroud)ordered {int} orderedS = {2,3,5};是等价的,并且对sortedS或orderedS的迭代将具有相同的行为.要指定降序,请添加关键字reverse.
此外,国家信息保障伙伴关系在2002年向国家标准与技术研究所提出了对条款的解释:
问题:
"排序"和"排序"这两个术语有什么区别?有时这些单词可以互换使用.
声明
尽管术语"排序"和"排序"有时在IT系统讨论中可互换使用,但它们的含义有所不同.当一个人分类时,一个人将项目分成不同的种类或类别; 当一个订单时,一个按特定顺序排列项目.