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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Azu
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 4
#1

Упорядочить массив так, чтобы вначале были элементы встречающиеся более одного раза - C++

15.12.2011, 15:18. Просмотров 469. Ответов 7
Метки нет (Все метки)

Условие: есть неупорядоченный массив, нужно упорядочить его таки образом, чтобы вначале были элементы встречающиеся более одного раза.
например
дано: 1 2 3 2 1
получается: 11223
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2011, 15:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить массив так, чтобы вначале были элементы встречающиеся более одного раза (C++):

Выбрать все элементы массива встречающиеся более одного раза - C++
В массиве из n элементов выбрать без повторений все элементы, встречающиеся более одного раза.

Вывести все элементы массива, встречающиеся более одного раза - C++
Дана целочисленная последовательность (одномерный массив целых чисел). Написать программу нахождения количества различных элементов этой...

Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями - C++
Условие: Даны натуральные числа m, n (m, n <= 10) и целочисленную матрицу размера m x n. Изменить матрицу так, чтобы в строках остались...

Удалить из строки все символы встречающиеся более одного раза - C++
ввести символьную строку удалить из строки все символы встречающиеся более одного раза #include <string.h> #include <conio.h> ...

Удалить из файла все слова, встречающиеся более одного раза - C++
Найти в файле f все слова которые встречаются более одного раза выбросить их из файла f и получить новый файл q. Помогите пожалуйста.!!!

Одномерный массив: отсортировать так, чтобы вначале шли положительные элементы, а затем - отрицательные - C++
Помогите пожалуйста с задачей. Надо в одномерном массиве поменять элементы так, чтоб вначале шли положительные, затем нули , затем...

7
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
15.12.2011, 16:07 #2
по возрастанию отсортируй пузырьком

Алгоритмы сортировок
0
Azu
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 4
15.12.2011, 23:04  [ТС] #3
Цитата Сообщение от vet Посмотреть сообщение
по возрастанию отсортируй пузырьком
спасибо, что пытаешься помочь, но отсортировать по возрастанию будет не всегда верно, если например данным массивом будет например 12199.
0
mrak12
Сообщений: n/a
15.12.2011, 23:34 #4
Цитата Сообщение от Azu Посмотреть сообщение
спасибо, что пытаешься помочь, но отсортировать по возрастанию будет не всегда верно, если например данным массивом будет например 12199.
Так и получится 11299. Пузырек всегда робит
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
15.12.2011, 23:53 #5
Цитата Сообщение от mrak12 Посмотреть сообщение
Так и получится 11299. Пузырек всегда робит
Полагаю, что должно получиться не 11299, а 11992
0
Azu
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 4
16.12.2011, 00:21  [ТС] #6
Цитата Сообщение от soon Посмотреть сообщение
Полагаю, что должно получиться не 11299, а 11992
Да, именно.
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.12.2011, 01:55 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Важно, как будут располагаться остальные элементы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <vector>
#include <iterator>
#include <cstdlib>
#include <algorithm>
 
template <class T> void function(T begin, T end)
{
    for(T i = begin, pos = begin; i != end - 1; ++i)
        for(T j = i + 1; (j != end) && (pos != end); ++j)
            if(*i == *j)
            {
                std::swap(*pos++, *i);
                std::swap(*pos++, *j);
            }
}
 
int gen() { return rand() % 11; };
                
int main()
{
    srand(time(NULL));
    std::vector<int> vec(10);
    std::generate(vec.begin(), vec.end(), gen);
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    function(vec.begin(), vec.end());
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    return 0;
}
0
Azu
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 4
16.12.2011, 05:58  [ТС] #8
Цитата Сообщение от soon Посмотреть сообщение
Важно, как будут располагаться остальные элементы?
Нет.
Спасибо за вариант.
0
16.12.2011, 05:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 05:58
Привет! Вот еще темы с ответами:

Сформировать массив,так чтобы элементы заштрихованной области были равны 1,а остальные 0 - C++
Сформировать массив,так чтобы элементы заштрихованной области были равны 1, а остальные 0.

Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке - C++
Доброго времени суток. Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке. Задача...

Преобразовать массив так, чтобы сначала располагались все элементы, отличающиеся от максимального не более 20% - C++
Задача звучит так: Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более...

Упорядочить массив так, чтобы элементы, которые равны 0, становились после всех остальных - C++
Задано массив целых чисел х1,х2, ...,хN.Упорядочить массив так, чтобы елементы которые равны 0 становились после всех остальных.Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru