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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.71
Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
#1

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

23.07.2012, 20:13. Просмотров 4640. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2012, 20:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно отсортировать значения элементов в массиве от большего к меньшему (C++):

В одномерном массиве, вычислить произведение положительных элементов, сумму элементов, расположенных до минимального, а также отсортировать массив. - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение положительных элементов массива; 2) сумму...

Найти сумму максимального значения элементов с четными индексами и минимального значения элементов с нечетными индексами в одномерном массиве - C++
дан одномерный массив А.найти мах(a2,a4..)+мин(a1,a3) int main() { int y; cin&gt;&gt;N; for(int i=0; i&lt;N; i++) cin&gt;&gt;y; max=y;...

В массиве A из N элементов (N не больше 30) определить количество элементов, имеющих четные значения, и сумму этих элементов. - C++
1. В массиве A из N элементов (N не больше 30) определить количество элементов, имеющих четные значения, и сумму этих элементов. Число N и...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Avazart
Эксперт С++
7188 / 5362 / 280
Регистрация: 10.12.2010
Сообщений: 23,664
Записей в блоге: 17
23.07.2012, 21:23 #16
Не мой пример а Шилда, он описывает начиная от cамописного свопа и пузрьковой сортировки до улучшенной быстрой.
Это к тому что книжки читать полезно, если хочишь понять, если нет юзай сразу std::sort

Про логическую переменную не понял...
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2012, 21:25 #17
Цитата Сообщение от Avazart Посмотреть сообщение
книжки читать полезно

Не по теме:

Кто же спорит. Поэтому, чтобы показать, что умеете писать красиво, надо показывать хорошие алгоритмы.



Цитата Сообщение от Avazart Посмотреть сообщение
Про логическую переменную не понял...

Не по теме:

Лень писать простые вещи, например, тут есть
http://www.delphi-manual.ru/booblesort.php

0
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
23.07.2012, 21:29 #18
Цитата Сообщение от Thinker Посмотреть сообщение
Ну почему многие так любят пузырек
- да за простоту реализации. Я больше люблю обменную сортировку (хотя лучше бы привыкнуть к сортировке вставкам - устойчивый и естественный алгоритм). Более быстрые алгоритмы сложнее в реализации. На массиве в 200 эл-тов у быстрой сортировки преимущество не ощущается.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2012, 21:32 #19
Catstail, Вы правы, но есть оптимизированный алгоритм сортировки пузырьком, работающий с инверсиями. Для маленьких массивов почти не важно какой алгоритм (но и тут свои ньюансы, лучше без рекурсии), но в современном мире огромные объемы информации надо обрабатывать уметь.
0
Jupiter
23.07.2012, 21:34
  #20
 Комментарий модератора 
Прекращаем оффтоп!
0
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
23.07.2012, 21:36 #21
Цитата Сообщение от Thinker Посмотреть сообщение
но в современном мире огромные объемы информации надо обрабатывать уметь
- это да... В этом случае - Шелловская, Быстрая, Пирамидальная - к нашим услугам. А в моей работе проблема встретилась всего один раз - помогла Шелловская сортировка (по Кнуту).
0
Thinker
Эксперт C++
4226 / 2200 / 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);
}

Не по теме:

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

0
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 строки и далее, Вы мне совсем левое пишете.
0
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2012, 22:04
Привет! Вот еще темы с ответами:

В массиве не находит повторные значения, нужно исправить - C++
include &lt;iostream&gt; #include &lt;cctype&gt; int main() { int massive; int *p=massive; int i=0,z=0; std::cout &lt;&lt;&quot;Vvedite zna4enie...

Помогите нужно вывести только определеные значения в массиве - C++
Спасибо уже только за то что проявили интерес и посмотрели тему ^^ (Пишу программу для решения матиматической модели . С толкнулся с...

Нахождение большего числа в массиве - C++
Доброго время суток друзья. Помогите, исправьте что надо. Задание такое: Дан массив F: array , определить количество&quot;особых&quot; элементов в...

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


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

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

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