SED, посидел подумал. всю ночь пытался понять как оно должно работать... ложусь спать.
зы - делать было нечего, решил написать алгоритм сортировки пузырьком и посчитать за сколько итераций он посчитает то или иное. массив чисел с 459 до 0 отсортировал за 210222 проходов :D - экономная сортировка
SED:
Когда писал лабку, появилась идея, увы это не мой уровень чтобы реализовать на практике. Суть в чем, все хорошо знают как работает сорт. пузырем ... но! пузырь идет последовательно, если предположим у нас массив 1000 на … Подробнее
Я не очень понял, как ты собираешься сортировать двумерный массив пузырьком. Но даже в случае одномерного массива, не понятно, когда он будет отсортирован. (я так понял, что в сортировке пузырьком ты собираешься сравнивать элемент не с непосредственно следующим, а со случайно выбранным из следующих.) Возьмем, скажем, массив [2,1,3] - может получиться, что 2 будет сравниваться с 3, 1 - с 3 и никаких обменов не произойдет.
SED:
случайно, но чтобы без повторов, по моему на С++ там можно, но могу ошибаться.… Подробнее
Случайно, но без повторов, не получится, даже если опустить детали реализации, поскольку предпоследний элемент можно, очевидно, сравнивать только с последним, предпредпоследний - только с предпоследним (последний уже "занят") и так далее - в итоге получается обычный пузырек
SED, у меня как раз текущая лабораторная (и единственная) связана со сравнением производительности несколких алгоритмов сортировки. Там и время сортировки измеряется, и всё разбито на функции так, что можно проверять скорость работы любого алгоритма. Про сортировку рандомных элементов мне давно говорили, но я считаю, что тогда генератор должен очень быстро работать. Правда, это будет работать всё равно медленнее, чем обычный алгоритм. Иначе - жертвовать точностью сортировки. Вообще, есть области применения, когда точность не особо важна. Обычно это мультимедия. Ну, подумаешь, пару пикселей будут не на своих местах
в с++ возможно написать функцию, которая будет принимать любое кол-во переменных любого типа и выводить их в консоль? Хотел написать что-то типа printLine, но проблема в основном вышла из-за того, что одни параметры по ссылке передаются, а другие нет. Такую функцию писал void printLine(const void* first, ...){ va_list ap; va_start(ap, first);
И в макросах кто-нибудь разбирается? Можно сделать макрос для удобного измерения время выполнения метода? Чтобы было типа long time = measure( f(...) ); Или так невозможно?
DDDENISSS:
в с++ возможно написать функцию, которая будет принимать любое кол-во переменных любого типа и выводить их в консоль? Хотел написать что-то типа printLine, но проблема в основном вышла из-за того, что одни параметры по с… Подробнее
FisHlaBsoMAN, Вот я хочу простую функцию printLine("Time = ", time, ...); Как ты себе представляешь это с созданием массива? Мне с cout возится уже надоело, с ним код такой грязный. А писать форматирование для printf не лучше вариант.
3 дек 2012 в 06:06
зы - делать было нечего, решил написать алгоритм сортировки пузырьком и посчитать за сколько итераций он посчитает то или иное.
массив чисел с 459 до 0 отсортировал за 210222 проходов :D - экономная сортировка