Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.81/68: Рейтинг темы: голосов - 68, средняя оценка - 4.81
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
1

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

23.07.2012, 20:13. Просмотров 13618. Ответов 23
Метки нет (Все метки)

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;
 }
Здесь выводится только максимальное значение, а как вывести остальные по убыванию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2012, 20:13
Ответы с готовыми решениями:

Нужно отсортировать правильно данные в ячейках от большего к меньшему по типу
нужен макрос для обработки столбца в таблице. Поставщик даёт состов товара. нужно отсортировтаь...

Нужно отсортировать двумерный массив от большего к меньшему (в примере логика работает с точностью до наоборот)
//- значение - id function SortArray(array) { for(var i=0;i&lt;array.length; i++){ ...

Отсортировать колонку Категория от большего к меньшему
имеется файлик, где расчитывется з/п рабочих. надо отсортировать колонку Категория (D). самая...

Отсортировать последовательность от большего к меньшему, и убрать все повторяющиеся числа
Задана последовательность действительных чисел {a}_{1}, {a}_{2},...{a}_{n}, n\leq 400. Сделать...

23
Модератор
Эксперт Python
26649 / 13897 / 2642
Регистрация: 12.02.2012
Сообщений: 22,782
Записей в блоге: 1
23.07.2012, 21:36 21
Цитата Сообщение от Thinker Посмотреть сообщение
но в современном мире огромные объемы информации надо обрабатывать уметь
- это да... В этом случае - Шелловская, Быстрая, Пирамидальная - к нашим услугам. А в моей работе проблема встретилась всего один раз - помогла Шелловская сортировка (по Кнуту).
0
Эксперт С++
4251 / 2225 / 203
Регистрация: 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);
}

Не по теме:

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

0
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 строки и далее, Вы мне совсем левое пишете.
0
Модератор
Эксперт Python
26649 / 13897 / 2642
Регистрация: 12.02.2012
Сообщений: 22,782
Записей в блоге: 1
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 все написал верно...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2012, 22:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывести k максимальных элементов массива от большего к меньшему
Ввод из: Стандартный ввод Время выполнения на одном тесте: 1 с Вывод в: Стандартный...


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

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

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