Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Maik512
0 / 0 / 1
Регистрация: 08.10.2016
Сообщений: 98
1

Используя сортировку методом сравнения, расположить элементы массива по убыванию

16.01.2017, 20:37. Просмотров 396. Ответов 7
Метки нет (Все метки)

Подскажите, пожалуйста. Дан массив вещественных чисел (A=30). Используя сортировку методом сравнения, расположить элементы массива по убыванию. Все работает, но мне сказал, что нужно что-то сделать (в местах со (*)), чтобы было рациональней.
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
31
32
33
34
35
36
37
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#define A 30
main()
{
int i,j,s;
float N[A],c;
time_t t;
clrscr();
srand(time(&t));
      for(i=0; i<A; i++)
      {
     N[i]=(float)rand()/RAND_MAX*A;
     printf("%f\n",N[i]);
      }
     for(i=0; i<A-1; i++) //(*)
     {
        for(j=i; j<A; j++) //(*)
        {
           if(N[i]<N[j])
           {
          c=N[j];
          N[j]=N[i];
          N[i]=c;
           }
        }
     }
printf("Vivod\n");
for(i=0; i<A; i++)
      {
     printf("%f\n",N[i]);
      }
getch();
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2017, 20:37
Ответы с готовыми решениями:

Используя сортировку методом сравнения, расположить элементы массива по убыванию
Пожалуйста помогите сессия..... Дан массив вещественных чисел(N=1000).Используя сортировку методом...

Использовать сортировку методом выбора, расположить элементы массива по возростанию
С помощью функции random(N) . Использовать сортировку методом выбора, расположить элементы массива...

Упорядочить элементы массива, не используя сортировку
Добрый день! Подскажите пожалуйста направление в решении следующей задачи: дан массив данных, в...

Упорядочить методом выбора элементы массива по убыванию модулей
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20,...

Отсортировать диагональные элементы массива по убыванию (методом выбора)
В задании просят: Отсортировать диагональные элементы массива по убыванию (методом выбора). ...

7
abrdabr_ne_ssv
Заблокирован
16.01.2017, 20:43 2
Цитата Сообщение от Maik512 Посмотреть сообщение
(в местах со (*))
в месте?
но ты же продефинировал А....
------------------------------------------------
ну ок ок, зачем в цикле соритровки рандом? если честно я не вникал что делает этот код... но явно не сортирует...
-----------------------
хотя чем жертвовать разрешили памятью или цптаймом?
1
Maik512
0 / 0 / 1
Регистрация: 08.10.2016
Сообщений: 98
16.01.2017, 20:49  [ТС] 3
abrdabr_ne_ssv, забыл добавить, элементы массива определять с помощью функции random(A), которая возвращает число в диапазоне от 0 до A−1.
0
abrdabr_ne_ssv
Заблокирован
16.01.2017, 21:00 4
Maik512, не проще ли добавить второй массив?
1
16.01.2017, 21:00
Maik512
0 / 0 / 1
Регистрация: 08.10.2016
Сообщений: 98
16.01.2017, 21:03  [ТС] 5
abrdabr_ne_ssv, сказали, что нельзя. Нужно в каком-то месте сделать проверку, типа отсортирован массив или нет. Если отсортирован, то нужно выйти из цикла. Только как это сделать?
0
abrdabr_ne_ssv
Заблокирован
16.01.2017, 21:11 6
Maik512, добавить "гребаный список"? но в принципе
- старт цикла соритровки и=0
- событие сортировки и=1
- конец цикла если и=1 то континуе иначе бреак

но если есть только массив и одна переменная это же будет 30^30 итераций или 30^2 ........... не рационально
1
Maik512
0 / 0 / 1
Регистрация: 08.10.2016
Сообщений: 98
16.01.2017, 21:38  [ТС] 7
abrdabr_ne_ssv, можно поподробнее, как это будет выглядеть в коде?
0
abrdabr_ne_ssv
Заблокирован
16.01.2017, 22:15 8
Maik512, можно, но у меня только 14 урок с++
int a=0;
while(int a=0){
for...
for... //пробег по циклу с одной переменной
if (original_array_is_modifed)?continue:break;// если оригинальный массиу изменён то повторить цикл иначе выход .. но по факту такой подход ошибочен тк новый элемент может располагаться в конце массива изначально....
}}


но смысл в том что берём первый элемент массива сравниваем со вторым третьим ..... и если он меньше то меняем местами (новый элемент и переменную, хотя не обязательно) и обнуляем цикл
1
16.01.2017, 22:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2017, 22:15

Отобрать по убыванию элементы массива с нечетными номерами методом обмена
Дан целочисленный массив с элементами от -20 до 20. отобрать по убыванию элементы массива с...

Упорядочить по убыванию элементы массива используя сортировку выбором
Упорядочить по убыванию элементы массива B используя сортировку выбором. Народ помогите исправить...

Упорядочить элементы массива по убыванию, используя линейную сортировку
Помогите пожалуйста написать программу В одномерном массиве, состоящем из n вещественных...


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

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

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