|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||||||
Реализация алгоритма сортировки для любых типов данных08.12.2009, 22:49. Показов 14452. Ответов 38
Метки нет (Все метки)
Помогите пожалуйста переделать реализацию сортировки так, чтобы она могла работать с любыми типами данных(int, double, etc) Т.е. могла сортировать не только целые числа, но и строки, etc.. Начал делать через функцию обратного вызова и застрял..
вот header: sort.h typedef int (*cmp_fnx)(void*, void*) void sort(void *v, int c, int s, cmp_fnx); //указатель на массив, количество элементов, на размерность каждого элемента Сам алгоритм:
0
|
||||||
| 08.12.2009, 22:49 | |
|
Ответы с готовыми решениями:
38
Реализация алгоритма сортировки Шелла Реализация алгоритма сортировки массива |
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
|
| 21.12.2009, 17:37 [ТС] | |
|
зачем генерировать 2 массива ? мне не нужно демонстрировать как сортируются любые типы данных, эта функция должна быть в библиотеке(какбэ задание-то в этом и заключается), а так программа генерит массив, сортирует его, сравнивает время сортировки с quicksort, и выводит на экран, потом спрашивает - ввести ли отсортированный массив ? y/n - выводит/не выводит -> выход из программы, по этой претензий ко мне не было.
0
|
|
|
|
||
| 21.12.2009, 18:03 | ||
|
Я пытаюсь тебе по шагам объяснить, как правильно написать программу (чтобы ты сам понял)
0
|
||
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 21.12.2009, 21:53 [ТС] | ||
|
0
|
||
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||||||||||||||||
| 22.12.2009, 19:03 [ТС] | ||||||||||||||||
|
mergesort.h
mergesort.сpp
0
|
||||||||||||||||
|
|
|||||||||||
| 22.12.2009, 19:31 | |||||||||||
|
Запустил программу, она мне в ответ пишет
Sorting 3000 elements with the sort1 takes 10000 msec. Ты можешь по этой надписи оценить правильность работы? Я - нет Я выкинул к чёртовой матери весь твой main и написал свой. Без красоты в виде времени сортировки, случайно сгенерённых массивов, вопросов и прочего. Ты можешь проверять на своём, но я предпочитаю на своём
-------------------------------------------------------- Шаг N2: Поменяй функцию Change. Сечай ты передаёшь указатель на начало массива и индексы. Перепиши так, чтобы подавались просто указатели на два элемента массива (т.е. чтобы обмен местами работал обсьрагированно от массива и был универсальным с точностью до типа переменной) Шаг N3: Сравнение двух элементов вместо операции "<" или ">" делай через функцию сравнения, которую пока просто напиши рядом и пусть она принимает указатели на два int'а
0
|
|||||||||||
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 22.12.2009, 20:01 [ТС] | ||
|
0
|
||
|
|
|
| 22.12.2009, 20:08 | |
|
> выкинь mergesort.сpp нафиг, он недоделан, поэтому такую ерунду выдает.
main у тебя в файле main.cpp. И как связано "выкинь mergesort" с тем, что я писал выше - непонятно. Какие ты мне дал исходники, те я и компилял
0
|
|
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
|
| 22.12.2009, 20:12 [ТС] | |
|
0
|
|
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 22.12.2009, 22:03 [ТС] | ||
|
0
|
||
|
|
|
| 22.12.2009, 22:18 | |
|
Я и не говорю, что твой main не работает. Твой main печатает только то, что я уже написал выше. По этой печати невозможно понять, работает оно или нет. В моём варианте main'а стоит конкретная печать конкретного массива и я, глядя глазами на массив, забитый в процедуре main и глядя на печать, которая рожается в процессе работы программы, вижу, что программа работает правильно хотя бы для такого массива. Это подаёт надежду на то, что программа будет работать правильно для любого массива (собственно, поэтому я и предложил написать несколько массивов)
Теперь выполни шаги 2 и 3 из поста #26. Таки образом постепенно мы доберёмся до того, что тебе нужно. Для начала для простоты работай только с одним файлом (main.cpp), как сделаешь нужные исправления - выложи их на форум, будем двигаться дальше
0
|
|
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 22.12.2009, 22:37 [ТС] | ||
|
0
|
||
|
|
||
| 22.12.2009, 23:44 | ||
|
1
|
||
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 23.12.2009, 08:06 [ТС] | ||
|
0
|
||
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 23.12.2009, 15:46 [ТС] | ||
|
0
|
||
|
|
||||||
| 23.12.2009, 17:43 | ||||||
|
Надо завязывать с добрыми делами
![]()
1
|
||||||
|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||
| 23.12.2009, 19:28 [ТС] | ||
![]() p.s.: если у меня появится желание учиться программированию (ааа, сейчас, размечтался ) то на каких примерах/заданиях лучше начать тренироваться ?
0
|
||
| 23.12.2009, 19:28 | |
|
Реализация алгоритма сортировки пирамидой
Реализация алгоритма пузырьковой сортировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|