Форум программистов, компьютерный форум, киберфорум
Наши страницы

Функция: поиск неповторяющихся элементов массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, лежит ли точка внутри области, вне области или на ее границе http://www.cyberforum.ru/cpp-beginners/thread676084.html
Вариант 2. Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На границе" в зависимости от того, лежит ли точка внутри заштрихованной...
C++ Вызов функции из функции Здравствуйте! Дано задание сначала объявить все функции и потом последовательно их выполнять. #include <iostream> #include <fstream> #include <math.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread676081.html
C++ Какой вклад более выгодный
Помогите пожалуйста с программой Банк предлагает 3 вида срочных вкладов: на 3 месяца под p1%, на 6 месяцев под p2% и на год под p3%. Какой из вкладов наиболее выгоден для вкладчика?
Проверить, содержится ли строка S0 в строке S C++
2)задача:Даны строки S и S0. Проверить, содержится ли строка S0 в строке S. Если содержится, то вывести True, если не содержится, то вывести False.
C++ Программа, помещающая 25 случайных целых чисел в диапазоне от 0 до 100 в упорядоченный список http://www.cyberforum.ru/cpp-beginners/thread676072.html
Напишите программу, которая помещает 25 случайных целых чисел в диапазоне от 0 до 100 в упорядоченный список. Вычислите сумму и среднее арифметическое элементов этого списка.
C++ Задача: написать программу электронной телефонной книги Ребят выручайте плиз :) Очень Очень нужна эта задачка. Задача: написать программу электронной телефонной книги. Спецификация : - программа должна содержать структуры: struct data { int день; int... подробнее

Показать сообщение отдельно
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
21.10.2012, 12:09
алгоритмы со сложностью O(n^2) для очень больших массив не очень подойдут. Если массив из целых чисел и диапазон разброса значений не очень велик (например, не более 100 000 000 элементов от min до max), то можно с линейной сложностью, то есть работать будет мгновенно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Search(int *a, int n)
{
   int min, max, i, m, *count;
   min = max = a[0];
   for(i = 1; i < n; i++)
      if (a[i] < min) min = a[i];
      else if(a[i] > max) max = a[i];
   m = max - min + 1;
   count = new int[m];
   if (count == NULL)
      return;
   for(i = 0; i < n; i++)
      ++count[a[i] - min];
   for(i = 0; i < m; i++)
      if (count[i] == 1)
         std::cout << (i + min) << " ";
   delete[] count;
}
по поводу сортировки от Gepar (сложностью O(n ln n)) тоже вариант, только надо проверять не пары, а тройки элементов: у текущего элемента левого и правого соседа, ну и с граничными случаями отдельно.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru