首先,这个题目的难易程度是与所给数据是息息相关的。如果所给数据被限制在一个不大的范围内,我们直接开辟一个相同的大小的数组,用下标作为值,将原数组扫描一遍即可。但是,如果说我们的数组中有很大的元素,这种算法就不再适用了,因为你需要创建一个很大的数组,这样显然是不太合适的。我的想法是利用查找算法中的散列表,数据量不大的情况下,我们的哈希函数就选为除留余数法,解决冲突的方法用分离链接法。
小白一枚,仅个人观点,若有错误,还望各位多多批评指正。
首先,这个题目的难易程度是与所给数据是息息相关的。如果所给数据被限制在一个不大的范围内,我们直接开辟一个相同的大小的数组,用下标作为值,将原数组扫描一遍即可。但是,如果说我们的数组中有很大的元素,这种算法就不再适用了,因为你需要创建一个很大的数组,这样显然是不太合适的。我的想法是利用查找算法中的散列表,数据量不大的情况下,我们的哈希函数就选为除留余数法,解决冲突的方法用分离链接法。
小白一枚,仅个人观点,若有错误,还望各位多多批评指正。