Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Значение объекта в математическом выражении #include <iostream> using namespace std; class GG { public: int vv=88; GG operator+(int const val){ vv=vv+val; return *this; } Можно сделать приведение к типу : operator int(){ return vv; } https://www.cyberforum.ru/ cpp-beginners/ thread3101182.html C++ Разработать пользовательский класс MyString https://www.cyberforum.ru/ cpp-beginners/ thread3101398.html
Пользовательский класс MyString должен содержать: необходимые элементы-данные, которые создаются в динамической области памяти; конструкторы (без параметров, с параметрами, копирования) для... MyString MyString::ChangeString() { int n = strlen(str1); if (n > 15) { char *a = strchr(str1, '{'); if (a == NULL) return MyString(); char *b =...
C++ Вывести символами незаполненный прямоугольник https://www.cyberforum.ru/ cpp-beginners/ thread3101311.html
Можете задать условие внутри вложенного тела цикла, чтобы прямоугольник был внутри не заполнен символами, а только были видны его стороны )))
C++ Рекурсивная функция вычисляющая число Пи через разложение в ряд Задание выполнить с использованием рекурсивной функции. #include <iostream> using namespace std; double Pi(int n=0) { double an=1./(2.*n+1.); if(an<1e-4) return 0; if(n%2)an=-an; return 4.*an+Pi(n+1); } https://www.cyberforum.ru/ cpp-beginners/ thread3101240.html
Определить, сколько студентов из списка находится в читальном зале C++
Пусть задан список студентов, занимающихся в читальном зале университета. В списке указаны ФИО, время прихода в читальный зал и время ухода из него. Необходимо определить, сколько... Вот уже и первый курс к концу подходит - по новым темам очевидно, что студентка продолжает успешно учиться благодаря готовым ответам. Это прекрасно, считаю!
C++ Ошибка компиляции "Переменная ... не объявлена"
#include <iostream> #include <vector> using namespace std; int main() { // заданный массив int image = { {1, 0, 0, 0, 1}, {1, 1, 1, 0, 0}, ... SovsemSlab, вынеси определение этих переменных в начало функции, дабы они были видны во всей функции
C++ Классы https://www.cyberforum.ru/ cpp-beginners/ thread3101309.html
Всем привет. Подскажите, в чем ошибка? #include <iostream> #include <string> using namespace std; class image { public: Код ошибки
C++ Найти среднее арифметическое модулей отрицательных простых элементов в К-й строке матрицы
Задан двумерный массив размерностью N×M. Сформировать массив B, присвоив К-му элементу среднее арифметическое модулей отрицательных простых элементов в К-й строке двумерного массива Хотелось бы видеть входные/выходные данные)) #include <iostream> #include <cmath> using namespace std; bool is_prime(int n) { if (n == 2 || n == 3) return true;
C++ Вычислить значение интервально заданной функции
Не проверял, но должно работать #include <iostream> #include <cmath> using namespace std; int main() { double a, b, x;
C++ Как работают два цикла for? фрагмент кода, что можно указать в блоке "тело цикла" for (int i = 1; i <= h; i++) { for (int j = 1; j <= w; j++) { cout << c; } cout << "\n"; } что можно указать в блоке "тело цикла" всё, что угодно https://www.cyberforum.ru/ cpp-beginners/ thread3101267.html
C++ Ошибка компиляции "List шаблон класса уже определен"
Имеется заголовочный файл и файл реализации, при попытке компиляции выдает ошибку "List шаблон класса уже определен". Можете ли подсказать, как это исправить? Заранее спасибо! .h #pragma once... Почему вы дважды конструктор определяете? Добавлено через 53 секунды И еще зачем вам 2 public в классе(7 и 19 строка заголовочного файла)?
C++ Вычислить указанное произведение сумм элементов последовательности Делаю программу, но она у меня не работает. Подскажите, как сделать чтобы она работала. Это мое условие: Динамические структуры данных. Пусть с клавиатуры вводится последовательность \small... https://www.cyberforum.ru/ cpp-beginners/ thread3101343.html
0 / 0 / 0
Регистрация: 21.03.2023
Сообщений: 5
0

Быстрая и Пирамидальная сортировка - C++ - Ответ 16878643

27.04.2023, 18:19. Показов 314. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Реализовать Пирамидальный метод сортировки строк числовой матрицы.Добавить реализацию быстрой сортировки (quicksort). Оценить время работы каждого алгоритма сортировки и сравнить его со временем стандартной функции сортировки.
вот пример с shell sort, хелп с пирамидалкой
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include "Timer.h"
 
#ifdef _DEBUG
#include "MemoryLeakTracker.h"
#endif
 
 
// сортировка Шелла
template<typename it, typename compare>
void shell(it start, it end, compare comp) {
    for (auto step = (end - start) / 2; step > 0; step /= 2) {
        for (auto i = start + step; i < end; i++) {
            for (auto j = i; j - start >= step && comp(*j, *(j - step)); j -= step)
                std::swap(*j, *(j - step));
        }
    }
}
 
// разбиение массива на две части относительно опорного элемента
// (для самодельной быстрой сортировки)
template<class Iter>
Iter partition(Iter first, Iter last)
{
    Iter pivot = last - 1;
    Iter right = first;
    for (auto unknown = first; unknown != last - 1; ++unknown)
    {
        if (*unknown <= *pivot)
        {
            std::iter_swap(right, unknown);
            ++right;
        }
    }
    std::iter_swap(right, pivot);
    return right;
}
 
// самодельная быстрая сортировка
template<class Iter>
void quick_sort(Iter first, Iter last)
{
    if (std::distance(first, last) > 1)
    {
        auto q = partition(first, last);
        quick_sort(first, q);
        quick_sort(q + 1, last);
    }
}
 
 
int main() {
    std::cout << "Enter array size" << std::endl;
    int size;
 
    srand(time(0));
 
    std::cin >> size;
    std::cout << std::endl;
    std::cout << "Elements in array: " << size << std::endl;
    std::cout << std::endl;
 
    std::vector<int> vec(size);
    std::generate(vec.begin(), vec.end(), std::rand);
 
#ifdef _DEBUG
    for (int el : vec)
    {
        std::cout << el << " ";
    }
#endif
 
    std::vector<int> vec2(size);
    std::vector<int> vec3(size);
    std::copy(vec.begin(), vec.end(), vec2.begin());
    std::copy(vec.begin(), vec.end(), vec3.begin());
 
    {
        Timer time("Shell sort");
        shell(vec.begin(), vec.end(), [](int a, int b) { return a < b; });
    }
 
    {
        Timer time("Built-in quick sort (std::sort)");
        std::sort(vec2.begin(), vec2.end(), [](int a, int b) { return a < b; });
    }
 
    {
        Timer time("Custom quick sort");
        quick_sort(vec3.begin(), vec3.end());
    }
}


Вернуться к обсуждению:
Быстрая и Пирамидальная сортировка C++
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2023, 18:19
Готовые ответы и решения:

Отсортировать каждый из 4 массивов 4 способами сортировки (пузырьковая, вставками, пирамидальная, быстрая )
Собственно задание на скрине #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;math.h&quot; using namespace std; class...

Сортировка Шелла и пирамидальная сортировка для символов
Здраствуйте, можете пожалуйста привести пример сортировок шелла и пиромидальной сортировки для символов, а то ничего не могу ...

2 сортировки: пирамидальная сортировка и сортировка слиянием
Реализовать два улучшенных алгоритма сортировки. Для каждого алгоритма вычислить показатель качества сортировки (количество операций, т.е....

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2023, 18:19
Помогаю со студенческими работами здесь

Пирамидальная сортировка
Добрый Вечер! Нужно сделать Пирамидальную сортировку. Немного получилось, но программа работает так как хотелось бы. Не сортирует...

пирамидальная сортировка
Пирамидальная сортировка есть???

Пирамидальная сортировка
Всем hello!!! Плиз помогите реализовать пирамидальную сортировку на С++!!! Зарание блогодарен!!!

Пирамидальная сортировка
Может кто может выложить примеры: 1) пирамидальной сортировки 2) сортировка простым выбором Они нужны в курсовую как примеры ...

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

0
Новые блоги и статьи
std::mutex в C++: Хитрости и тонкости использования
Wired 03.03.2025
В C++ ключевым инструментом для обеспечения корректной работы параллельных процессов выступает std::mutex – примитив синхронизации, появившийся в стандарте C++11. До его появления использовали. . .
std::span в C++: Производительно­сть и практическое использование
Wired 03.03.2025
Традиционная работа с указателями и массивами часто приводит к ошибкам и уязвимостям в безопасности. Именно поэтому в C++20 появился std::span - легковесная обертка, обеспечивающая безопасный. . .
std::span в C++: Константность и безопасность типов
Wired 03.03.2025
std::span - представитель семейства view-типов, появившийся в стандарте C++20. Этот компонент предоставляет легковесное и эффективное решение для работы с непрерывными последовательностями данных,. . .
std::span в C++: Subview и Slice
Wired 03.03.2025
std::span - невладеющий тип данных C++, который предоставляет гибкий интерфейс для работы с непрерывными последовательностями элементов. Этот тип существенно упрощает обработку массивов и. . .
std::span в C++: Доступ к элементам и итерирование
Wired 03.03.2025
Появление std::span в стандарте C++20 стало значительным шагом вперед, предоставив разработчикам средство для безопасного и производительного доступа к непрерывным последовательностям элементов. . . .
std::span в C++: Управление массивами данных без владения
Wired 03.03.2025
Новый класс std::span, появившийся в стандарте C++20, открывает возможности для оптимизации работы с последовательными наборами данных. По сути, это легковесная обертка, которая предоставляет доступ. . .
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru