0

我有一个关于算法的问题要问。我被要求为此编写算法:不要求您为我编写算法,而只是让我知道我需要做什么的有效过程:

有一个由 n 个元素组成的数组,例如书籍或圣经的内容,假设您在其中插入了一个输入字符串“Gaurav Agarwal”。您想要做什么,您需要获取该字符串的数组中存在的唯一元素。只是一个算法,你将如何进一步进行(未排序)

如果您不明白,请告诉我,我会尽力提供帮助。

4

4 回答 4

1

在未排序的数组中查找重复项的一种好方法是根据字符串元素对其进行排序,因此您的作业问题的算法将是:

  1. 对数组进行排序
  2. 检查您的阵列是否存在“Gaurav Agarwal”。由于它已排序,相邻元素将是相同的字符串,然后您需要做的是保留一个计数器并递增它,直到找到不等于您要查找的字符串的第一个数组元素
于 2011-07-04T05:00:16.570 回答
1

对字符串数组进行排序然后解析它需要一些时间。我建议只解析字符串数组并验证字符串的长度是否与数组当前位置的字符串长度相同。如果长度相同,比较2个字符串

于 2016-11-21T14:39:05.140 回答
0

我将按以下步骤进行:

  1. 我会使用带有链接的哈希表,使用适用于字符串的哈希函数。
  2. 找到新字符串的哈希并在与该哈希对应的插槽的链表中搜索重复项。
于 2017-08-23T10:24:01.650 回答
0

我不认为排序和搜索是解决您的问题的最有效方法。

排序本身具有 nlogn 复杂性。

只对数组进行蛮力搜索更有效(复杂度为 n)

如果您要为一个字符串或几个字符串查找唯一元素,就会出现这种情况。如果您试图为大量输入字符串而不是一个唯一的输入字符串查找唯一元素,那么排序是有意义的。

于 2015-10-13T06:30:08.820 回答