Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Исполнение функции-члена в отдельном потоке Здравствуйте, форум! Вот такой вот пример: Имеется класс, в котором есть 3 перегрузки одной функции. class A { public: void func1(); https://www.cyberforum.ru/ cpp-beginners/ thread1773562.html Обработка записей содержащих структуры "Студент" C++
Задание для самостоятельного выполнения Составить программу, обеспечивающую формирование данных из задания 5 в виде списка. Реализовать следующие операции работы со списком в виде меню: Меню: 1.Добавление записи (подменю: 1.1. в начало списка, 1.2.в конец списка, 1.3.после первой записи, удовлетворяющей некоторому условию (придумать самостоятельно)) 2.Удаление записи (по значению текстового...
C++ Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии https://www.cyberforum.ru/ cpp-beginners/ thread1773523.html
Дана квадратная матрица порядка . Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы.
C++ Динамически распределяемая память, удаление символов в строке https://www.cyberforum.ru/ cpp-beginners/ thread1773513.html
Нужна помощь в написании программы: Удаление символов Написать функцию, обеспечивающую ввод с клавиатуры строки неограниченной длины без редактирования. Написать функцию, которая удаляет символы, стоящие между двумя определенными символами. Символ вводится пользователем. Примечание: В каждой задаче должна быть реализована проверка на целостность кучи. При работе со строками учитывать символ...
C++ Напечатать все слова последовательности, предварительно преобразовав каждое из них по правилу
Нужна помощь в написании программы: Дана последовательность, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними словами — не менее одного пробела, за последним словом — точка. Напечатать все слова последовательности, предварительно преобразовав каждое из них по следующему правилу: 1) перенести последнюю букву в начало слова; 2) удалить из слова первую...
C++ Как нарисовать фигуру и двигать ее мышью? Как нарисовать геометрическую фигуру (треугольник, квадрат, многоугольник) в окне? И как сделать так чтобы они двигались мышью? https://www.cyberforum.ru/ cpp-beginners/ thread1773504.html
C++ Поиск элемента, меньшего заданного, в упорядоченном массиве Добрый день. Мне необходимо найти в массиве первый элемент, который меньше заданного, и, очень желательно, за логарифм. Массив упорядочен по убыванию. Решил приспособить для этой задачи бинарный поиск. Пробовал несколько вариантов, но у меня в каждом случае поиск выполняется либо в одной, либо в другой половине массива. Подскажите пожалуйста, как можно реализовать это. Ниже выкладываю примерный... https://www.cyberforum.ru/ cpp-beginners/ thread1773488.html Объединить упорядоченныые элементы из двух файлов в один C++
Наговнокодил такое вот... даже не знаю как назвать... Задача такая "Элементы файлов f1 и f2 упорядочены по не убыванию. Объединить эти элементы в один файл f3, также упорядоченный по не убыванию." Но вот конечно же все это не работает и я чет вообще не знаю... Помогите... может даже что-то лучше предложите чем вот такое вот "оно живое... почти" #include <stdio.h> #include <string.h>...
C++ Найти ошибку в программе обхода строк матрицы Друзья, помогите! Дана целочисленная матрица размерности (n x n). Если сумма по модулю элементов каждой последующей строки больше предыдущей, то ко всем элементам столбцов с четными номерами индексов добавить максимальный элемент среди элементов, стоящих над главной диагональю. В противном случае матрицу оставить без изменения Вот что у меня вышло, но программа компилируется, только вот... https://www.cyberforum.ru/ cpp-beginners/ thread1773478.html C++ Отсортировать нечетные элементы массива по убыванию 1. Отсортируйте в массиве нечетные элементы по убыванию. https://www.cyberforum.ru/ cpp-beginners/ thread1773472.html
Variadic template lambda capture C++
Доброго всем дня! Речь пойдёт об C++14, в котором стало возможным делать прямую передачу в замыкание: auto my_lambda = () { /* используем ptr */ }; Очень удобно передавать универсальную ссылку: template <typename T> void some_func(T&& arg) { //... auto my_lambda = () { /* используем arg */ }; //...
C++ Найти ошибку в программе возведения числа в степень https://www.cyberforum.ru/ cpp-beginners/ thread1773415.html
#include <iostream> #include <conio.h> #include <cmath> using namespace std; int a; int b; int c; float r; int d; int x1;
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
01.07.2016, 10:55 0

Определение возможности сортировки массива удалением одного элемента - C++ - Ответ 9332650

01.07.2016, 10:55. Показов 1206. Ответов 20
Метки (Все метки)

Ответ

Ka_ktus,

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

но если нужно тупо ответить на вопрос можно или не можно, то мой метод избыточный и некрасивый. я использую дополнительно памяти ~N, да и N-проходов, стыдно короче. а меня никто не проверяет, не помогает в общем вот за один проход, с константным расходом памяти. попытался хорошо написать. если под 98 нужно компилить, то вместо auto будет typename std::iterator_traits<Iter>::value_type, а вместо лямбд - обычные функции и передать указатели на них.

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
#include <iostream>
 
template <class Iter, class Pred>
bool check(Iter begin, Iter end, Pred foo)
{
    bool first_miss = true;
    auto temp = *begin;
    for(Iter it = begin; it != end - 1; ++it)
    {
        if(!foo(temp, *(it + 1)))
            if(first_miss)
            {
                first_miss = false;
                continue;
            }
            else
                return false;
        temp = *(it + 1);
    }
    return true;
}
 
int main()
{
    typedef int Type;
    const Type N = 4;
    Type x[N] = { 1, 3, 2, 4 };
 
    std::cout << " - can i throw one an make it non-decreasing?\n";
    std::cout << " - " << (check(x, x + N, [](Type a, Type b) {return a <= b;}) ? "yes, you can." : "no, you can not.") << "\n\n";
    std::cout << " - can i throw one an make it non-increasing?\n";
    std::cout << " - " << (check(x, x + N, [](Type a, Type b) {return a >= b;}) ? "yes, you can." : "no, you can not.") << "\n\n";
 
    return 0;
}
http://rextester.com/MCKEB73164

Вернуться к обсуждению:
Определение возможности сортировки массива удалением одного элемента C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2016, 10:55
Готовые ответы и решения:

Исследовать возможности адаптации различных методов сортировки к структуре исходного массива
Исследовать возможности адаптации различных методов сортировки к структуре исходного массива. С...

Затруднение с удалением элемента и образованием нового размера статического массива
Здравствуйте, существует затруднение в программном формулировании удаления элементов из массива. ...

Определение первого из столбцов, не содержащих ни одного отрицательного элемента
Здравствуйте, помогите, пожалуйста, с заданиями... 1. Консольный ввод/вывод целочисленного массива...

Эффективный алгоритм сортировки одного массива по данным другого массива
Всем привет! Время сортировки массива с 2 млн. строк - 0,85 сек., Время сортировки массива...

20
01.07.2016, 10:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2016, 10:55
Помогаю со студенческими работами здесь

Из массива A удалить те цепочки нечетных элементов, в которых нет ни одного элемента из массива B
Пожалуйста помогите! Из массива A удалить те цепочки нечетных элементов, в которых нет ни...

Из массива A удалить те цепочки нечетных элементов, в которых нет ни одного элемента из массива B
Помогите пожайлуста с решением задачи: Из массива A удалить те цепочки нечетных элементов, в...

Поменять расположение элементов одного массива так же, как и в другом после сортировки
Сложновато вопрос сформулировать. Элементы массива y сортируются по возрастанию и меняется их...

Функция сортировки и нахождения максимального элемента массива
Написать функцию, которая принимает у пользователя массив, сортирует его и находит максимальный...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru