子阵列,子集和子集之间的差异子

时间:2014-10-26 00:14:37

标签: subset arrays subsequence

我在子阵列,后续序列和放大器之间有点困惑。子集

如果我有{1,2,3,4}

然后

子序列可以是{1,2,4}{2,4}等。所以基本上我可以省略一些元素但保持顺序。

子阵列(比如3号子阵列)

{1,2,3}
{2,3,4} 

那么子集是什么?

我对这三个人感到有点困惑。

6 个答案:

答案 0 :(得分:24)

在我看来,如果给定的模式是数组,那么所谓的subarray意味着contiguous subsequence

例如,如果给定{1,2,3,4},subarray可以

{1, 2, 3}
{2, 3, 4}
etc.

虽然给定的模式是一个序列,但subsequence包含其下标在原始序列中增加的元素。

例如,{1,2,3,4},subsequence也可以

{1, 3}
{1,4}
etc.

虽然给定的模式是一个集合,但subset包含原始集合的任何可能组合。

例如,{1,2,3,4},subset可以是

{1}
{2}
{3}
{4}
{1, 2}
{1, 3}
{1, 4}
{2, 3}
etc.

答案 1 :(得分:7)

在数组的上下文中,SubSequence - 不需要有条件但需要维护顺序。但是SubArray很有尊严,而且本身就维持着秩序。

如果你有{1,2,3,4} --- {1,3,4}是一个有效的SubSequence但它不是一个子阵列。

子集不是顺序而且没有连续性。所以你{1,3,2}是一个有效的子集,但不是子序列或子数组。

{1,2}是有效的子阵列,子集和子序列。

所有子阵列都是子序列,所有子序列都是子集。

但有时候子集和子阵列以及子序列可以互换使用,并且“contigious”这个词的前缀是使其更清晰。

答案 2 :(得分:3)

考虑一个数组:

 {1,2,3,4}

子数组:数组中的连续序列,即

{1,2},{1,2,3}

子序列:不必是连续的,而是保持顺序

{1,2,4}

子集:与子序列相同,但子集为空

 {1,3},{}

给出大小为n的数组/序列,可能是

Subarray = n*(n+1)/2
Subseqeunce = (2^n) -1 (non-empty subsequences)
Subset = 2^n

答案 3 :(得分:1)

请考虑元素集合(数组,序列,集合等)中的以下两个属性:顺序和连续性。

顺序是指您无法切换两个或多个元素的索引或位置(带有单个元素的集合的顺序不相关)。

连续性是元素必须使它们的邻居保留在一起或为空。

子数组具有顺序和连续性。

子序列具有顺序,但不具有连续性。

子集既不排序也不连续。

据我所知,不存在具有连续性但没有顺序的集合

答案 4 :(得分:0)

例如,根据我的理解,我们有一个列表[3,5,7,8,9]。这里

子集不需要维护顺序,并且具有不连续的行为。例如,[9,3]是一个子集

子序列保持顺序,并且具有非连续行为。例如,[5,8,9]是一个子序列

子数组保持顺序并具有连续的行为。例如[8,9]是一个子数组

答案 5 :(得分:0)

子数组:数组中的一些连续元素

子集:集合中的某些元素

子序列:在大多数情况下,数组中的某些元素保持相对顺序(不必是连续的)