数组算法

时间:2011-07-04 04:51:45

标签: array-algorithms

我有一个问题要问算法。我被要求写这个算法:不要求你为我写算法,但只是让我知道我需要做的有效过程:

有一系列n个元素,如圣经的书或内容,假设你已插入一个输入字符串“Gaurav Agarwal”。你想要做什么,你需要获取该String中数组中存在的唯一元素。只是一个算法,你将如何进一步(未分类)

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

4 个答案:

答案 0 :(得分:1)

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

  1. 对数组进行排序
  2. 检查你的阵列是否存在“Gaurav Agarwal”。由于它是有序的,相邻的元素将是相同的字符串,你需要做的是保持一个计数器并递增它,直到你发现第一个数组元素不等于你正在寻找的字符串

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

排序本身具有nlogn复杂性。

只是对数组进行强力搜索更有效(具有n的复杂性)

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

答案 3 :(得分:0)

我会按以下步骤继续:

  1. 我会使用带有链接的哈希表,使用哈希函数 适用于字符串。
  2. 找到新字符串的哈希并搜索链接列表 slot对应重复的散列。