1nd1g0 писал(а):
А то и базами данных (тут с поиском всё в порядке).а с быстродействием ?
Ответов: 1528
Рейтинг: 57
|
|||
1nd1g0 писал(а): А то и базами данных (тут с поиском всё в порядке).а с быстродействием ? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
hitman249 писал(а): а с быстродействием ?При мелких задачах накладные расходы на работу с базами нивелируют все преимущества. Если данных очень много (?), то БД - самый быстрый вариант. |
|||
карма: 1 |
|
Ответов: 1528
Рейтинг: 57
|
|||
порядка 100000 номеров(одно- двух-значных) на одну БД
------------ Дoбавленo в 15.53: как добавлять данные в БД, чтобы их можно было искать как по строке ? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
hitman249 писал(а): искать как по строке ?Какие виды поиска и операций нужны в целом? Минимальная группа чисел, идущих подряд, максимальная группа чисел, идущих подряд, нужен ли поиск по маске (когда часть чисел в группе неважна или должна соответствовать особым правилам? Будут ли удаляться данные из середины массива, вставляться в середину, сортироваться, заменяться и т.п. Раскрывайте задачу целиком тогда уже. При работе со строкой, если последовать моему совету с лидирующими нулями и разделителем, потребуется порядка 300 Кб. Я сейчас не могу посмотреть, какой предел у строки, использованной в компонентах HiAsm, строки бывают динамической длины с замыкающим нулём и с заголовком - маркером длины, от его разрядности зависит предел строки. |
|||
карма: 1 |
|
Ответов: 1528
Рейтинг: 57
|
|||
Tad писал(а): и нафига она(удобочитательность) нужна ?чтобы с визуализацией не париться, все числа уже в удобочитаемом виде Tad писал(а): конкретизируй "огромная". hitman249 писал(а): порядка 100000 номеров |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249, проблема выдумана на ровном месте.
hitman249 писал(а): ищутся совпадение по всей строке (которая будет просто огромная).hitman249 писал(а): кроме того что удобочитательность падает |
|||
карма: 25 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Tad, IMHO, он собирается выводить в прокручиваемое горизонтально поле сто тысяч чисел, разделённых пробелом и раскрашенных в разные цвета в зависимости от диапазона, в который эти числа попадают. Пополнять числа с хвоста вбивая вручную (сто тысяч раз ). Прошу заметить, что это лишь мои догадки на основе анализа всех его тем и постов в разных местах.
|
|||
карма: 1 |
|
Ответов: 1528
Рейтинг: 57
|
|||
блин форум глюканул, потёр моё предыдущее сообщение новым
------------ Дoбавленo в 17.40: 1nd1g0 писал(а): он собирается выводить в прокручиваемое горизонтально поле сто тысяч чиселтолько последних 30 введённых пар ------------ Дoбавленo в 17.56:
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249 писал(а): только последних 30 введённых парhitman249 писал(а): порядка 100000 номеровИлии ты запоминаешь все раннее введенные пары ? |
|||
карма: 25 |
|
Ответов: 1528
Рейтинг: 57
|
|||
Tad писал(а): 30 последних "пар" - это всего (с пробелами) 90 знаков.не всегда число 2 значное, но чаще всего, поэтому я так сказал чтобы было понятно что есть числа не однозначные. Tad писал(а): Илии ты запоминаешь все раннее введенные пары ?всё верно, все введённые цифры запоминаются и последние n введённых ищатся на совпадение |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
code_24887.txt
------------ Дoбавленo в 20.21: Вот тебе тест на 200000 пар. Время в микросекундах ------------ Дoбавленo в 20.22: Tad писал(а): hitman249, проблема выдумана на ровном месте. |
|||
карма: 25 |
| ||
файлы: 1 | code_24887.txt [2.4KB] [129] |
Ответов: 1528
Рейтинг: 57
|
|||
Tad, дык правильно ты зачемто пары отдельные создаёшь, и ещё ко всему втыкаешь искомую пару первой, вот и скорость высокая
вот например берём созданные тобой по порядку первые пары (данные rand()) 04253408 23330831 ищем число 34082333, оно среди них было, а он его ведь не найдёт, и смысл ? |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249 писал(а): ещё ко всему втыкаешь искомую пару первой------------ Дoбавленo в 21.21: а так ?
|
|||
карма: 25 |
|
Ответов: 1528
Рейтинг: 57
|
|||
я почему про быстродействие подумал, потому что при поиске со строкой длинной 10000 числовых пар, будет происходить ~9990 инициализаций
------------ Дoбавленo в 21.36: Tad, это то с чего я и начинал, т.е. уже ближе но нужно добавлять туда удаление последнего числа (тобишь 2 цифры с права.. наверно), ну в таком виде это уже не так сложно, но также по сложнее найти впереди стоящую перед 01020304 пару цифр, на каждом найденном месте, т.е. если найдено 01020304 не один раз а например 5 раз, то нужно дёргать впередистоящие цифры со всех 5 мест, сохранять можно темже StrCat методом склеивания. |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249, давай алгоритм игры.
------------ Дoбавленo в 21.53: Вопрос вдогонку: 1. если найдено 2 совпадения, то что с ними делать ? 2. если найдено 100 совпадений, то что с ними делать ? |
|||
карма: 25 |
|