Алгоритм поиска дубликатов в массиве

У меня есть задание создать алгоритм поиска дубликатов в массиве, который включает числовые значения. но не сказано, какие числа, целые числа или числа с плавающей запятой. Я написал следующий псевдокод:

 FindingDuplicateAlgorithm(A) // A is the array
      mergeSort(A);
      for  int i <- 0 to i<A.length
           if A[i] == A[i+1]
                 i++
               return  A[i]
           else
                 i++

создал ли я эффективный алгоритм? целые числа или числа с плавающей запятой. Я написал следующий псевдокод:

 FindingDuplicateAlgorithm(A) // A is the array
      mergeSort(A);
      for  int i <- 0 to i<A.length
           if A[i] == A[i+1]
                 i++
               return  A[i]
           else
                 i++

создал ли я эффективный алгоритм? целые числа или числа с плавающей запятой. Я написал следующий псевдокод:

 FindingDuplicateAlgorithm(A) // A is the array
      mergeSort(A);
      for  int i <- 0 to i<A.length
           if A[i] == A[i+1]
                 i++
               return  A[i]
           else
                 i++

создал ли я эффективный алгоритм? Я думаю, что в моем алгоритме есть проблема, он несколько раз возвращает повторяющиеся числа. например, если массив включает 2 из двух для двух индексов, у меня будет ... 2, 2, ... на выходе. как я могу изменить его, чтобы каждый дубликат возвращался только один раз? Я думаю, что это хороший алгоритм для целых чисел, но хорошо ли он работает и для чисел с плавающей запятой?

9
задан Paul R 16 November 2010 в 10:32
поделиться