Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
insi
1

Помогите оптимизировать код

16.05.2008, 20:48. Просмотров 1314. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста разобраться, хотелось бы чтобы это прграммка наконец-то заработала. Задача такая:

Одномерный массив целых чисел, размер которго задается с клавиатуры. Запрограммировать следующие действия с массивом:
1. циклически сдвигать на К позиций влево;
2. выяснить, упорядочены ли элементы массива по невозрастанию или неубыванию;
3. если в исходном массиве количество положительных значений меньше, чем отрицательных, то создавать новый массив для отрицательных значений, в противном случае - создавать массив для положительных значений и переписывать в него соответствующие значения исходного массива.

В приложении необходимо:
1. Для временного хранения наборов значений использовать только временные динамические массивы;
2. Программирование заданных действий производить с использованием указателей;
3. Вывод результатов оформлять в виде таблицы;
4. Создать пользовательсике функции;
5. В приложении необходимо обеспечить возможность выбора конкретного действия;
6. В приложении необходимо обеспечить возможность повторного выполнения задания без перезапуска приложения;



Код:
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
     int N;
    cin>>N;
    int *pm=new int[N];
// arr = указатель на первый элемент массива
// N = количество элементов в массиве
// shift = куда и на сколько двигать
// проверки на валидность отсутствуют
template <typename T>
void rotate(T* arr, size_t N, typename std::iterator_traits<T>::difference_type shift)
{
    if (shift < 0)
        shift = N+shift;
    std::rotate(arr, arr+shift, arr+N);
}
// Невозрастающая
template <typename T>
bool nonincreasing(T* arr, size_t N)
{
    return std::adjacent_find(arr, arr+N, std::less<T>()) == arr+N;
}
 
// Неубывающая
template <typename T>
bool nondecreasing(T* arr, size_t N)
{
    return std::adjacent_find(arr, arr+N, std::greater<T>()) == arr+N;
}
// двойной проход
template <typename T>
std:: pair<size_t, size_t> posneg_count(T* arr, size_t N)
{
    return std::make_pair(
        std::count_if(arr, arr+N, std::bind2nd(std::less<T>(), 0)),
        std::count_if(arr, arr+N, std::bind2nd(std::greater<T>(), 0))
        );
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2008, 20:48
Ответы с готовыми решениями:

Помогите оптимизировать код
Здравствуйте! Помогите, пожалуйста, оптимизировать его: main.cpp #include &quot;main.h&quot;...

Оптимизировать код
Для решения задачи : &quot;Given an array a that contains only numbers in the range from 1 to a.length,...

Оптимизировать код
Первое число входного потока - количество чисел Дальше идут те самые числа Надо найти кол-во пар...

Оптимизировать код
Для решения задачи : &quot;Note: Write a solution that only iterates over the string once and uses...

1
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
20.05.2008, 17:27 2
чего-то я тоже не соображу, что тут у вас начеркано. давайте по порядку все. сдвиг на к позиций: вроде похоже на правду, если вместо N+shift брать N+shift по модулю N. и так же можно использовать и для любого знака shift.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2008, 17:27

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

Оптимизировать код
Доброго времени суток, как можно оптимизировать код что бы он быстрее работал ? Дана...

Оптимизировать и минимализировать код
Cделал легкую прогу. Понимаю логики 0 в коде. Можете помочь оптимизировать код? А заодно и сделать...

Нужно оптимизировать код
Нужно максимально сократить код #include &lt;iostream&gt; using namespace std; int main(int...

Исправить и оптимизировать код
нужна помощь по исправлению ошибок Написал программу она работает все отлично но препод сказал...

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

Как оптимизировать код
Доброй ночи господа у меня к вам такая просьба как можно упростить данный код? #include &lt;iostream&gt;...


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

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

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