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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Вишенка
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 6
#1

Упорядочивание массивов - C++

18.11.2009, 22:43. Просмотров 1299. Ответов 11
Метки нет (Все метки)

Помогите, пожалуйста, решить задачу...

Написать программу упорядочивание массивов типа int, float и complex по убыванию. Функции, упорядочивающие массивы имеют одно и тоже имя.

Это надо в с++ в Visual Studio
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
19.11.2009, 00:47     Упорядочивание массивов #2
Вот тело функции для упорядочивания массивов типа int и float... с типом complex в С++ я не знаком...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
     
            float nTemp;
            for (int i = 0; i < size; i++)  //внешнее прохождение
            {
                for (int j = 1; j < size; j++)  //внутреннее прохождение
                {
                    if (arr1[j - 1] < arr1[j])  //если элементы стоят на на свое месте,
                    {                   //то меняем их местами
                        nTemp = arr1[j - 1];
                        arr1[j - 1] = arr1[j];
                        arr1[j] = nTemp;
                    }
                }
            }
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 16:11     Упорядочивание массивов #3
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
#include <iostream>
#include <vector>
#include <complex>
#include <algorithm>
#include <functional>
 
 
struct complex : public std::binary_function<std::complex<double>,std::complex<double>,bool> 
{
    bool operator() (const std::complex<double> &a, const std::complex<double> &b)
    {
        return a.real() > b.real();
    }
};
 
int main()
{
    std::vector<std::complex<double>>a;
    std::complex<double>first(2.0,2.0);
    std::complex<double>second(3.0,3.0);
    std::complex<double>third(4.0,4.0);
    a.push_back(first);
    a.push_back(second);
    a.push_back(third);
    std::copy(a.begin(),a.end(),std::ostream_iterator<std::complex<double>>(std::cout," "));
    std::sort(a.begin(),a.end(),complex());
    std::cout<<"new array"<<std::endl;
    std::copy(a.begin(),a.end(),std::ostream_iterator<std::complex<double>>(std::cout," "));
    return 0;
}
Zhomart
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 9
19.11.2009, 19:39     Упорядочивание массивов #4
Можно еще короче.
C++
1
2
3
4
5
#include <algorithm>
...
sort(a+0,a+n); // от 0 до n-1
reverse(a+0,a+n);// от 0 до n-1
...
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 20:18     Упорядочивание массивов #5
Zhomart, тогда уж в sort сразу функциональный объект запихнуть.
Zhomart
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 9
19.11.2009, 20:20     Упорядочивание массивов #6
Андрейка, а так будеть медленно работать.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 20:23     Упорядочивание массивов #7
Zhomart, так я думаю из вектора в чисел 10 мы не особо эту медленность заметим)
Zhomart
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 9
19.11.2009, 20:25     Упорядочивание массивов #8
Андрейка, кто знает, может там 10^5 или больше елементов.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 20:41     Упорядочивание массивов #9
Zhomart, ну это всё конечно да но я думаю девушке в универ нужно а туда для теста думаю элементов 10 хватит показать что алгоритм не рушится ) ещё я вот про комплексные числа написал но я не уверен по какому критерию их сортировать у таких чисел же 2 части действительная и мнимая так что подождём Вишенку )
Zhomart
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 9
19.11.2009, 20:49     Упорядочивание массивов #10
Андрейка, надеюсь она знает как сравнивать двух комплексных числа )
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 20:51     Упорядочивание массивов #11
Zhomart, да эт всё ерунда она operator() перегрузит как ей надо .
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2009, 20:56     Упорядочивание массивов
Еще ссылки по теме:

Упорядочивание матрицы C++
С++ упорядочивание массива C++
C++ Упорядочивание массивов
Упорядочивание "пузырьком" массивов, вводимых пользователем C++
C++ Упорядочивание массива

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

Или воспользуйтесь поиском по форуму:
Zhomart
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 9
19.11.2009, 20:56     Упорядочивание массивов #12
Андрейка, странно, а че за operator()? по идее для сортировки нужен оператор "bool operator<(const Complex&)". или не так?
Yandex
Объявления
19.11.2009, 20:56     Упорядочивание массивов
Ответ Создать тему
Опции темы

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