什么是字典排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是字典排序相关的知识,希望对你有一定的参考价值。

是今天做VJ模拟赛时才发现我不知道什么是字典排序
谁能讲讲?
比如两个单词
ilove 和
baray
怎么比较
谢谢 可用代码说(P)

字典排序(lexicographical order)是一种对于随机变量形成序列的排序方法。即按照字母顺序,或者数字小大顺序,由小到大的形成序列。

以问题中提到的序列为例,“ilove”的第一个字母是“i”,“baray”的第一个字母是“b",在字母表中,”i“是排到”b“前面的,所以”ilove“就应该排到”baray“前面。

扩展资料:

字母表序列:

A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z。

字典序:在数学中,字典或词典顺序(也称为词汇顺序,字典顺序,字母顺序或词典顺序)是基于字母顺序排列的单词按字母顺序排列的方法。 这种泛化主要在于定义有序完全有序集合(通常称为字母表)的元素的序列(通常称为计算机科学中的单词)的总顺序。

字典序的形式定义:

给定两个偏序集A和B,(a,b)和(a′,b′)属于笛卡尔积A×B,则字典序定义为:(a,b) ≤ (a′,b′) 当且仅当a<a′ 或 (a=a′ 且b≤b′)。

结果是偏序。如果A和B是全序, 那么结果也是全序。

参考资料:

百度百科-字典排序

百度百科-字典序

参考技术A

字典排序(lexicographical order)是一种对于随机变量形成序列的排序方法。

其方法是,按照字母顺序,或者数字小大顺序,由小到大的形成序列。

比如说有一个随机变量X包含1 2 3三个数值。

其字典排序就是1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1

拓展资料

随机变量(random variable)表示随机试验各种结果的实值单值函数。随机事件不论与数量是否直接有关,都可以数量化,即都能用数量化的方式表达。 

随机事件数量化的好处是可以用数学分析的方法来研究随机现象。例如某一时间内公共汽车站等车乘客人数,电话交换台在一定时间内收到的呼叫次数,灯泡的寿命等等,都是随机变量的实例。

参考技术B 就是按照字典里的排序方法啊
先比较第一个字符
i 和 b
b<i b是第2个 ,i是第9个 2 < 9
于是 baray < ilove
如果第一位相同,就比较第二位,
例如:
abcdd<abcde
aaaay<aaaaz
如果其中之一是另一个的前缀,则短的那个排前面:
aaa < aaab本回答被提问者采纳
参考技术C 字典排序(lexicographical order)是一种对于随机变量形成序列的排序方法。其方法是,按照字母顺序,或者数字小大顺序,由小到大的形成序列。

比如说有一个随机变量X包含1 2 3三个数值。
  
其字典排序就是 1 1 2 1 2 3 2 2 3 3
参考技术D 就是按照字典里的排序方法啊
先比较第一个字符
i

b
b<i
b是第2个
,i是第9个
2
<
9
于是
baray
<
ilove
如果第一位相同,就比较第二位,
例如:
abcdd<abcde
aaaay<aaaaz
如果其中之一是另一个的前缀,则短的那个排前面:
aaa
<
aaab

什么是字典序?

【中文标题】什么是字典序?【英文标题】:What is lexicographical order? 【发布时间】:2018-02-07 14:11:42 【问题描述】:

字典顺序的确切含义是什么?它与字母顺序有何不同?

【问题讨论】:

【参考方案1】:

字典顺序字母顺序。另一种类型是数字排序。考虑以下值,

1, 10, 2

这些值按字典顺​​序排列。 10 按数字顺序排在 2 之后,但 10 按“字母”顺序排在 2 之前。

【讨论】:

那么按照字典顺序,只有第一个数字会被考虑?我理解对了吗? @NDesai 否。如果第一个数字匹配,则将比较第二个数字;但它比较像String - 也就是说102 之前,但11110 之后(但也在1000 之后)。因为0 小于1。词法排序将每个字符串中的字符作为字符进行比较,而不是整数值。 知道了。谢谢! @greybeard 你不想按共价顺序(我已经有一段时间没有化学反应了)? "字典顺序是字母顺序"。这不是完全正确的。即使不涉及字母表,元组的排序也被描述为字典顺序,例如,根据字典比较,(0,4,2) 小于 (1,3,2)。例如,请参见此处:en.wikipedia.org/wiki/Ordered_vector_space#Examples【参考方案2】:

字母顺序是一种特殊的字典顺序。术语词典通常是指数学规则或排序。例如,这些包括从逻辑上证明排序是可能的。在wikipedia上阅读更多关于字典顺序的信息

字母顺序包括在处理空格、大写字符、数字和标点符号方面不同的变体。纯粹主义者认为,允许 a-z 以外的字符使排序不是“字母”,因此它必须属于更大的“词典”类别。同样,wikipedia 有更多详细信息。

在计算机编程中,一个相关的问题是dictionary orderascii code order。按字典顺序,大写“A”与小写“a”相邻排序。但是,在许多计算机语言中,默认字符串比较将使用 ascii 代码。对于 ascii,所有大写字母都排在小写字母之前,这意味着“Z”将排在“a”之前。这有时称为ASCIIbetical order。

【讨论】:

【参考方案3】:

这只是表示“字典顺序”,即单词在字典中的排序方式。如果要确定字典中两个单词中的哪一个会排在另一个之前,则可以从第一个位置开始逐个字母比较单词。例如,单词 “children” 将出现在单词 “chill” 之前(并且可以认为更小),因为这两个单词的前四个字母相同但是 "children" 中第五位的字母(即 d )在 "chill" 中第五位的字母之前(或小于)(即 l )。纵向观察,“children”这个词大于“chill”,但长度不是这里的标准。同理,会出现一个包含12345的数组 在包含 1235 的数组之前。 (Deshmukh, OCP Java SE 11 Programmer I 1Z0815 Study guide 2019)

【讨论】:

“这个”?阅读完整问题时,您的第一句话模棱两可。【参考方案4】:

字典顺序是指字典顺序。 例如:在字典中,“ado”在“adieu”之后,因为在英文字母系统中,“o”在“i”之后。 此排序不是基于字符串的长度,而是基于最小字母在前的出现。

【讨论】:

【参考方案5】:

我想添加一个与术语的编程方面而不是数学方面更相关的答案。

字典顺序并不总是等同于“字典顺序”,至少这个定义在编程领域并不完整,而是指“基于多个标准的排序”。

例如,几乎在所有著名的编程语言中,都有用于对对象集合进行排序的标准工具,现在如果您想根据不止一件事对集合进行排序怎么办?例如,假设您想先根据价格对某些商品进行排序,然后再根据它们的受欢迎程度对它们进行排序。 这是一个字典顺序的例子。

例如在 Java (8+) 中,您可以这样做:

// sorts items from the cheapest AND the most popular ones
// towards the most expensive AND the least popular ones.
Collections.sort(items,
    Comparator.comparing(Item::price)
   .thenComparing(Item::popularity)
   .reversed()
);

Java documentation 也使用这个术语,在解释“thenComapring()”方法时指代这种类型的排序:

返回一个字典顺序比较器和另一个比较器。

【讨论】:

【参考方案6】:

字典顺序只不过是字典顺序,或者最好是单词在字典中出现的顺序。例如,让我们取三个字符串,“short”、“shorthand”和“small”。在字典中,“short”在“shorthand”之前,“shorthand”在“small”之前。这是字典顺序。

【讨论】:

这与多年来一直存在的其他答案有何不同?也许您可以找到一些需要答案的未回答问题。

以上是关于什么是字典排序的主要内容,如果未能解决你的问题,请参考以下文章

c# 字典 Dictionary排序问题

数字按字典序怎么排?

按时间对字典中的字典进行排序的最有效方法是啥(对于评论树)?

为啥字典“未排序”?

把数字按照字典形式的进行排序

根据字典对列重新排序