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

Нужно отсортировать значения элементов в массиве от большего к меньшему - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.71
Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
23.07.2012, 20:13     Нужно отсортировать значения элементов в массиве от большего к меньшему #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int main ()
{
 int a[100], b;
 cin >>b;
 for (int i=0;i<=b;i++)
 cin >> a[i];
 
    int sort=a[0];
    for (i=1;i<=b;i++)
        if (a[i]>sort) sort=a[i];
     cout << sort;
 return 0;
 }
Здесь выводится только максимальное значение, а как вывести остальные по убыванию?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2012, 20:13     Нужно отсортировать значения элементов в массиве от большего к меньшему
Посмотрите здесь:

C++ В массиве A из N элементов (N не больше 30) определить количество элементов, имеющих четные значения, и сумму этих элементов.
Найти сумму максимального значения элементов с четными индексами и минимального значения элементов с нечетными индексами в одномерном массиве C++
В заданном массиве из n элементов отсортировать по возрастанию его часть C++
Помогите нужно вывести только определеные значения в массиве C++
C++ В заданном массиве из n элементов отсортировать по возрастанию его часть
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21500 / 10253 / 1669
Регистрация: 12.02.2012
Сообщений: 17,139
23.07.2012, 21:36     Нужно отсортировать значения элементов в массиве от большего к меньшему #21
Цитата Сообщение от Thinker Посмотреть сообщение
но в современном мире огромные объемы информации надо обрабатывать уметь
- это да... В этом случае - Шелловская, Быстрая, Пирамидальная - к нашим услугам. А в моей работе проблема встретилась всего один раз - помогла Шелловская сортировка (по Кнуту).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2012, 21:38     Нужно отсортировать значения элементов в массиве от большего к меньшему #22
мне нравится такой вариант сортировки пузырьком:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void BubbleSort(int *a, const int n)
{
   int i, r, buf, flag;
   flag = r = 1;
   do{
      flag = 0;
      for(i = n - 1; i >= r; i--)
         if (a[i] > a[i-1])
         {
            buf = a[i];
            a[i] = a[i-1];
            a[i-1] = buf;
            flag = 1;
         }
      r++;
   }while(flag);
}

Не по теме:

все от информации зависит, имеются супер быстрые алгоритмы

Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
23.07.2012, 21:48  [ТС]     Нужно отсортировать значения элементов в массиве от большего к меньшему #23
Цитата Сообщение от Catstail Посмотреть сообщение
- да за простоту реализации. Я больше люблю обменную сортировку (хотя лучше бы привыкнуть к сортировке вставкам - устойчивый и естественный алгоритм). Более быстрые алгоритмы сложнее в реализации. На массиве в 200 эл-тов у быстрой сортировки преимущество не ощущается.
Помогите пожалуйста Вы. Вы мою прошлую задачу хорошо решили. Помогите с этой. Заранее благодарю

Добавлено через 3 минуты
Цитата Сообщение от Thinker Посмотреть сообщение
мне нравится такой вариант сортировки пузырьком:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void BubbleSort(int *a, const int n)
{
   int i, r, buf, flag;
   flag = r = 1;
   do{
      flag = 0;
      for(i = n - 1; i >= r; i--)
         if (a[i] > a[i-1])
         {
            buf = a[i];
            a[i] = a[i-1];
            a[i-1] = buf;
            flag = 1;
         }
      r++;
   }while(flag);
}

Не по теме:

все от информации зависит, имеются супер быстрые алгоритмы

Уважаемый Thinnker, Вы не в ту степь. Мне нужно изменить с 8 строки и далее, Вы мне совсем левое пишете.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2012, 22:04     Нужно отсортировать значения элементов в массиве от большего к меньшему
Еще ссылки по теме:

C++ В одномерном массиве значение каждого элемента заменить разностью этого значения и среднего арифметического значения других элементов
C++ В одномерном массиве, вычислить произведение положительных элементов, сумму элементов, расположенных до минимального, а также отсортировать массив.

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

Или воспользуйтесь поиском по форуму:
Catstail
Модератор
 Аватар для Catstail
21500 / 10253 / 1669
Регистрация: 12.02.2012
Сообщений: 17,139
23.07.2012, 22:04     Нужно отсортировать значения элементов в массиве от большего к меньшему #24
Я делаю так:

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
#include <iostream.h>
int main ()
{
    int a[100], b,i,j,tmp;
 
    cin >>b;                     // ввод размерности массива
    for (int i=0;i<=b;i++)    // ввод самого массива
         cin >> a[i];
 
    for (i=0; i < b-1; i++)    // Сортировка обменом
         for (j=i+1; j<b; j++)
                if (a[i] < a[j])  // если галку направить в другую сторону,
                  {                //  сортировка будет по возрастанию
                     tmp=a[i];
                     a[i]=a[j];
                     a[j]=tmp;
                   }           
 
     // Вывод отсортированного массива
 
     for (i=0; i<b; i++) cout << a[i] << " ";
     cout << endl;
 
     return 0;
 }
Кстати, Thinker все написал верно...
Yandex
Объявления
23.07.2012, 22:04     Нужно отсортировать значения элементов в массиве от большего к меньшему
Ответ Создать тему
Опции темы

Текущее время: 02:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru