Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2015, 16:57   #1
Fliiz
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 44
По умолчанию Сортировка массива

Народ такая задача:
Дан массив из N элементов. Отсортировать по возрастанию суммы модулей разностей каждого элемента со всеми остальными. Найти такой элемент из данного множества, для которого эта сумма максимальна, и саму эту сумму.
Вообщем написал код,но это еще пол-задачи..Помогите последний пункт выполнить (так себе сформулирована)
Буду очень благодарен
Код:
#include <cmath>
#include <iostream>
using namespace std;

const int n=4;
double sum;
double A[n],B[n];
int a, b;
double mod_sum(int a)
{
    sum=0;
    cout<<endl;
    for (int i = 0; i < n; i++)
    {
        sum=sum+abs(A[a]-A[i]);
    }
    cout<<"Summa modulei raznosti ="<<sum<<endl;
    return sum;
}

int main()
{
    cout<<"Vvedite elementi massiva A"<<endl;
    for (int i=0;i<n;i++)
    {
        cin>>A[i];
    }

    for (int i=0;i<n;i++)
    {
        B[i]=mod_sum(i);
    }

    for (int j=1;j<n;j++)
    for (int i=0;i<n-j;i++)
    if (B[i]>B[i+1])
    {
        b=B[i];
        a=A[i];
        B[i]=B[i+1];
        A[i]=A[i+1];
        B[i+1]=b;
        A[i+1]=a;
    }

    cout << endl;
    cout<<"Massiv po vozrastaniyu summy modulei raznosti: "<<endl;
    for (int j=0;j<n;j++) cout<<A[j]<<" ";

}
Fliiz вне форума Ответить с цитированием
Старый 03.07.2015, 18:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int el=0;
    for (int i=0;i<n;i++)
    {
        B[i]=mod_sum(i); el=(B[i]>B[el])?i:el;
    }
printf("%d-%f",el,B[el]);
Это если я правильно понял, и мне неясен один момент: Как ты смог написать такое непростое решение, не зная как искать максимум?
P.S. И по-моему тут можно было не делать функцией mod_sum. Достаточно просто сделать сумму всех, а потом от нее отнимать модуль элементов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2015, 18:41   #3
Fliiz
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 44
По умолчанию

А как тут попроще можно?

Хотелось бы посмотреть на вашу "версию" скажем так)

Последний раз редактировалось Stilet; 03.07.2015 в 19:38.
Fliiz вне форума Ответить с цитированием
Старый 03.07.2015, 19:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну я могу ошибаться. Я предполагал, что сумму дистанций можно высчитать сразу имея общую сумму массива, но... Пока не представляю себе формулу. Хотя уверен что она есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2015, 14:57   #5
Fliiz
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 44
По умолчанию

То есть вторая половина задачи-это тупо найти максимум?
Fliiz вне форума Ответить с цитированием
Старый 04.07.2015, 15:24   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну да. Иначе как ее можно понять?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2015, 20:52   #7
Fliiz
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 44
По умолчанию

То ли сформулирована она так себе,или я такой тупой:D А так,спасибо)
Fliiz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Сортировка массива С++ Anast Помощь студентам 4 29.12.2011 20:15
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Сортировка массива Weyner Помощь студентам 2 23.10.2010 08:32
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18