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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.68
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

Расположить в массиве числа в порядке убывания частоты встречаемости чисел - C++

24.05.2009, 02:04. Просмотров 2983. Ответов 4
Метки нет (Все метки)

У меня задание: Расположить в массиве числа в порядке убывания частоты встречаемости чисел.
Как это можно сделать? Я думаю, можно создать второй массив такой же размерности, и в нём хранить количество повторений числа по определённому индексу, т.е., например, в исходном массиве число по индексу [0] повторяется 5 раз, то во втором массиве по индексу [0] хранить 5. Но тогда возникает проблема, как это вывести на экран в порядке убывания, ведь второй массив будет неотсортированный, а если его отсортировать, то потеряется соответствие индексов.
Если, можно, то только подскажите алгоритм, если кто-нибудь знает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2009, 02:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расположить в массиве числа в порядке убывания частоты встречаемости чисел (C++):

Строка: Как расположить буквы в первом массиве, который типа char, в порядке убывания или возрастания частоты появления букв в тексте? - C++
Имеется два массива. Один типа char из 26 букв алфавита в алфавитном порядке, другой -- типа int из 26 элементов, в которых соответственно...

Расположить чётные числа массива в порядке возрастания, а нечётные в порядке убывания - C++
Требуется расположить чётные числа в порядке возрастания, а не чётные в порядке убывания. Относительного расположения чисел не менять. С...

Пользователь ввел три целых числа, расположить эти числа в порядке убывания - C++
#include<iostream.h> main() { int a,b,c,max,min,aver; cout<<"enter a "; cin>>a; cout<<"enter b "; cin>>b; cout<<"enter c ...

Вывести начальные буквы слов текста в порядке частоты встречаемости (Паскаль -> С++) - C++
var s : AnsiString; k, prev : integer; i, j, T : char; index : array of char; arr : array of integer; begin s :=...

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

Вывести все содержащиеся в массиве числа, нацело делящиеся на 3, в порядке убывания их индексов - C++
Напишите функцию , которая выводит вначале все содержащиеся в массиве числа , нацело делящиеся на 3 , в порядке убывания их индексов , а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DEM90
17 / 17 / 1
Регистрация: 06.05.2009
Сообщений: 115
24.05.2009, 02:14 #2
Лучше создать еще 2 массива. в одном числа которые встречаются, а во втором соклько раз они встречаются...
К примеру у анс есть массив вида: 5 5 5 1 10 3 3 2 6 7 5 1 3
Тогда у нас будет два массива:
5 1 10 3 2 6 7
И второй:
4 2 1 3 1 1 1
ну и потмо смотреть...
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
24.05.2009, 02:42  [ТС] #3
Так я практически то же самое и предложил, тут вся проблема с выводом в нужном порядке. Наверное, придётся искать максимальное число во втором массиве, выводить, что ему соответствует в первом, потом проходить дальше по убыванию.
DEM90
17 / 17 / 1
Регистрация: 06.05.2009
Сообщений: 115
24.05.2009, 11:19 #4
По-моему тут хватит обычной сортировки. Сравниваем значение эллементов второго массива, а местами меняем и второй и первый.
То есть:
C++
1
2
3
4
5
6
7
8
if(arr2[i]<arr2[i+1]){
int a2=arr2[i];
int a1=arr1[i];
arr2[i]=arr2[i+1];
arr2[i+1]=a2;
arr1[i]=arr1[i+1];
arr1[i+1]=a1;
}
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.05.2009, 01:21  [ТС] #5
А, ну да, так даже лучше. Спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2009, 01:21
Привет! Вот еще темы с ответами:

Вывести все содержащиеся в массиве четные числа в порядке убывания их индексов, а также их количество - C++
1. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их...

Каждый чётный столбец квадратной матрицы расположить в порядке убывания, а каждый нечётный в порядке возрастания - C++
Дана квадратная матрица порядка n. Каждый чётный столбец расположить в порядке убывания, а каждый нечётный в порядке возрастания. ...

Расположить отрицательные элементы массива в порядке убывания - C++
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

Каждый чётный столбец матрицы расположить в порядке убывания, а каждый нечётный в порядке возрастания - C++
Составить программу на языке C++, состоящую из двух функций с использованием указателей. В главной функции выполнить ввод двумерного...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.05.2009, 01:21
Ответ Создать тему
Опции темы

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