|
25 / 25 / 0
Регистрация: 21.11.2009
Сообщений: 159
|
||||||
Реализация алгоритма сортировки для любых типов данных08.12.2009, 22:49. Показов 14448. Ответов 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 | |
|
Реализация алгоритма сортировки пирамидой
Реализация алгоритма пузырьковой сортировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой
Зрите в корень - монополизация на разработку программ. . .
|
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
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|