Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Вы тоже сами можете проверить на функции любые свои числа, не буду против лишних проверок. И что гадать - ТС вы тоже можете помочь, проверив скорость работы. Если не понравится, ничего страшного не случится. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если в строке очень много чисел, то строка будет очень большой, а поиск чего либо в очень большой строке (при том ещё и обработанной - дополненной разделителями в начале и конце) в цикле - всегда плохое решение. Даже если будет сделано всего 100 таких "поисков" (т.е. данные действительно ограничены 2-значными целыми неотрицательными числами, и безо всяких пробелов/ведущих нулей и т.п. мусора). Т.е. что для "коротких" строк в 3-10 чисел, что для "очень длинных" в десятки и сотни тысяч чисел, что для неизвестных ограничений на мин/макс число, что для известных но больших (уже 4-знаки это 10к прогонов цикла), что для "не совсем аккуратно указанных" чисел (лишние пробелы, ведущие нули), что для десятичных дробей - указанное решение не подходит. Диапазон его применимости на самом деле смехотворно мал - и даже в этом диапазоне другие решения по скорости запросто его обойдут. Ну и как это можно в таком случае назвать? ------------------ WBR, Igor |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Прям не строки с цифрами, а описание лошадиных гонок на ипподроме. Понятно, у ТС какая-то своя реальная проблема (и которую он давно решил), но откуда конкретно вы возьмете свои экзотические строки с цифрами, чтоб так за их опоздания нервничать? Исправлено 2 раз(а). Последнее : lulgu, 11.10.18 00:32 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
dfr Автор Сообщений: 254 Откуда: Барнаул Дата регистрации: 29.07.2005 |
Спасибо кто откликнулся.
Потестил скорость. Скрипт от lulgu всех обогнал - 0.55 сек, на моем - 41.35, скрипт от LUCIAN (без пузырьков) - 95.91, Дмитрий Петров - 11.43. Технологию от Аспид не осилил.. Это на 81 тыще записей, в DBF, с сохранением обратно. Максимально - 20 цифр в строке. Числа максимум могут 3х-значные, количество в строке примерно как сейчас. Пробелов, ведущих нулей - не имеется. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Думаю, вы где-то сильно ошиблись, или у вас супер-пупер комп (что сомнительно, так как ваш вариант у меня отработал за 30 секунд на 100 тыс.записей). Даже первый вариант в лоб, где используется цикл от 1 до 100, все 100'000 записей тестового курсора одинаковые и такие, как в вашем примере, на моем компе занимает 8-9 секунд. При 3-значных числах и, соответственно, цикле от 1 до 999 это время равно 25-26 секунд. MIN() и MAX() я, конечно не использовал, хотя это уменьшило бы время теста, но и ограничило применение процедуры. Ведь если это разовая процедура, то зачем ее ускорять? А если планируется выполнять регулярно, то лишь вам известно, может ли количество чисел в строке превысить ограничения в 26 этих функций. -------------- Здесь не было примеров, построенных исключительно на работе с массивом. Мне очевидно, что она в среднем будет работать быстрее (думаю, раза в полтора на ваших данных и в разы на произвольных данных) и не будет иметь таких ограничений, как 26 чисел для MIN/MAX. Поэтому если вам требуется еще ускорить функцию lulgu, сообщите. (хотя даже простая замена TRANSFORM() на ALLTRIM(STR()) немного ускорит процесс) Исправлено 1 раз(а). Последнее : akvvohinc, 11.10.18 21:24 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Окончательный, супербыстрый, и одновременно универсальный код когда кто напишет - разбудите )
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Когда мне говорят о "множестве записей", то я обычно подразумеваю "миллионы". Если же, как оказалось, их не более 100000, то любая, не очень сложная, манипуляция должна "уложиться" в секунды, и если не сотворить что-то "особо умное", то разницей во времени обычно можно пренебречь при любых разумных алгоритмах. Бывают и исключения. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Дада, бывают исключения (нерасчетные величины к формуле), бывает очень много расчетных величин. Все бывает. математики к этому щепитильно относятся к "исключениям", они хотят, чтобы и исключения вошли в их определения. Молодцы. А мы ведь просто скобари, программисты. Может возникнуть вопрос о дробных числах, о комплексных (и возможно специальных условиях упорядочения), о тензорных величинах (мера в "пространстве мер-величин-тензоров")
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Может так:
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
лулгу, можно и так. Но твой код такой унылый, как и ты... Извини )
Доб. Выпив. Подумал. Я себе приврал. те кто еще свой унылый код показывают с точностью до FOR-a, то это придурки в второй степени отсталости, в квадрате в современных величинах изменения тупости кандидатов на работу... кстати Исправлено 1 раз(а). Последнее : of63, 11.10.18 22:39 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Основное время занимает перегонка в курсор и обратно - проще отсортировать массив ALINES и обратно из него собрать строку, исключая дубли. Вариант лулгу при использовании 3-знаков проигрывает даже работе через курсор. При этом вариант с курсором как минимум нужно проверять при SET TALK OFF - иначе тонна бесполезных сообщений в статусбар снижает скорость более чем в 4 раза.
------------------ WBR, Igor |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Вобще-то, Игорь, ты привел много строк кода, сомнительного свойства (ну, ты удтверждаешь, что там все вечно, в ваших ЛИЧНЫХ кодах/понятиях збс), но вопрос был в научить юзера извлекать из баз, и просто разговаривать, мтк. ) Не терять контакт с новыми юзерамиию. Я еще попью раз 100, потом вы и сами поймете, как обращаться с новичками )
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
У ИК такие криминальные способности зазря пропадают. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
вы все числа гоняете по шкурке ? )
""csv - не тот же куй? Что вы хотите-то? не понимаю |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
------------------ WBR, Igor |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
и? такой многозначительный.. \
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Да, почти это я и имел в виду. Требуются только некоторые доработки по сортировке (ее надо делать над числами). PS Только хотел показать пример, но увидел, что он является полной копией 3-го варианта Игоря, вплоть до способа отсечения дублей - бывает же такое! |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Я сравнивал первый вариант от lulgu со своим (и, соответственно, 3-м вариантом Игоря) на произвольных данных, полученных таким образом:
то есть 100'000 записей, каждая из которых содержит 10 произвольных чисел в интервале от 1 до 999. Результат был 100 секунд против 2-3 секунд. Исправлено 3 раз(а). Последнее : akvvohinc, 12.10.18 00:30 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Лулгу, заметь, тебя упомянули.
Кстати скажу чесно, .. не скажу. Лулгу нас не бросает ) Прикольный |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
[quote of63]Лулгу, заметь, тебя упомянули.
Кстати скажу чесно, .. не скажу. Лулгу нас не бросает ) Прикольный[/quote Опять глубинами FOR-ами меряются... тоска.. |
© 2000-2024 Fox Club  |