powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Класс для поиска десятичных данных по нескольким полям
25 сообщений из 37, страница 1 из 2
Класс для поиска десятичных данных по нескольким полям
    #39051349
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть таблица. Это справочник соответствия некоторых величин при физическом процессе. Всего пять полей с типом Decimal и десять тысяч строк. Какой класс .net лучше использовать для хранения такой таблицы?. Интересен поиск строки по каждому из полей. Если было два поля, то вариантов масса: Dictionary, Hashtable и др. Для установления соответствия между пятью полями понадобилось бы 10 экземпляров вышеупомянутых классов, это если в Value будет просто значение другого поля. Ну или хотя бы пять, если в Value будет храниться строка (кортеж?) из остальных полей.
Другая проблема, что значения по которому я буду искать может не оказаться в таблице. Например, я ищу 36.8, а в таблице есть только 36.6 и 40.0. В таком случае, мне нужно получить строку с ближайшим значением в любую сторону. В моём текущем случае мне не нужно интерполировать значение -- таблица и так очень точная, а если бы пришлось то нужна бы была не одна строка, а несколько в обе стороны.
Я конечно, могу велосипед придумать на базе пяти Dictionary (или даже одного DataTable) и циклов для изменения значения поиска при неудачи... Но боюсь он будет ездить медленно.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051380
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051381
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще если "Интересен поиск строки по каждому из полей", то чем поиск по самой таблице не устравивает?
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051382
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 skyANA
Вы считаете, что лучше использовать именно двумерные массивы, а не допустим массивы массивов? А они оптимизированы для поиска по десятичным значениям?
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051384
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по самой таблице DataTable ? Я переживаю за скорость, она подойдёт?
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051385
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И собственно ещё сильней напрягает реализация поиска по неточному значению( по тому, которого нет в таблице)
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051386
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3по самой таблице DataTable ? Я переживаю за скорость, она подойдёт?Вы написали: "У меня есть таблица". Где она есть? Почему прямо по ней не ищете? Запросом.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051388
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну пока она есть в текстовом файле. планирую вообще её в код запихать. С БД не охото завязываться
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051389
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3С БД не охото завязываться

тогда только хардкор
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051390
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3, а что за данные, некий временной ряд? Почему не хотите завязываться к примеру с Column store, или TimeSeries store?
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051392
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3 2 skyANA
Вы считаете, что лучше использовать именно двумерные массивы, а не допустим массивы массивов?У Вас фиксированное количество полей в строке.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051393
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAColumn store, или TimeSeries store? пошёл гуглить...
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051394
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3skyANAColumn store, или TimeSeries store? пошёл гуглить...:)

Погуглите заодно matlab и язык R. Лично у меня возник вопрос: а зачем тут вообще .net?
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051395
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
з.ы. вообще я думал, что 10000 строк, не тот объем чтоб средств языка не хватило...
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051400
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем тут вообще .net? ну морды последнее время на нём пишу, вот и решил на нём... вообще хочу написать приложение для своего хобби и делиться с коллегами по увлечению. А вот осваивать новые для себя языки (R и т.д.)...
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051415
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3з.ы. вообще я думал, что 10000 строк, не тот объем чтоб средств языка не хватило...10000 строк - это не тот объём, когда сразу нужно думать об оптимизированном поиске.

Вот сколько у Вас простой перебор по многомерному массиву занимает? :)
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051417
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3зачем тут вообще .net? ну морды последнее время на нём пишу, вот и решил на нём... вообще хочу написать приложение для своего хобби и делиться с коллегами по увлечению. А вот осваивать новые для себя языки (R и т.д.)...Морду для чего Вы хотите написать? Что за хобби? Анализ временных рядов? :)
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051423
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA[10000 строк - это не тот объём, когда сразу нужно думать об оптимизированном поиске. А вот это может быть веско! Но ведь данные тоже в циклах будут дёргаться...

Хобби - изготовления алкогольных напитков в домашних условиях. Программа - возможность выполнять разные нетривиальные расчеты. Таблица - соответствие концентраций (объёмных, массовых, молярных) этанола в кипящей жидкости и дистилляте и температуры кипения.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051436
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3skyANA[10000 строк - это не тот объём, когда сразу нужно думать об оптимизированном поиске. А вот это может быть веско! Но ведь данные тоже в циклах будут дёргаться...Вы таки для начала замерьте свои циклы, прежде чем переживать :)

breee3Хобби - изготовления алкогольных напитков в домашних условиях. Программа - возможность выполнять разные нетривиальные расчеты. Таблица - соответствие концентраций (объёмных, массовых, молярных) этанола в кипящей жидкости и дистилляте и температуры кипения.Для одного напитка 10000 строк?

P.S.: классы, заточенные именно под Ваши "нетривиальные расчеты" вряд-ли существуют. Возьмите многомерный массив, да напишите вокруг него всё.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051437
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S.: нетривиальные не значит сложные. Так что не стоит бояться.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051446
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA напишите вокруг него всё. это само собой :) попробую вообщем на DataTable всё таки, там можно какие-то условия накладывать. А уж если, что потом буду оптимизировать. Вы меня успокоили, спасибо!
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051456
Gluck_13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не предполагается внесение изменений в таблицу в процессе работы (статический справочник), то я бы представил строку справочника в виде struct, сложил бы в его в массив, и построил бы 5 индексных массивов для поиска, каждый из которых представляет собой список индексов основного массива, отсортированных по возрастанию того или иного поля.
Производим обыкновенный бинарный поиск по индексному массиву, если не нашли строгое соответствие, то проверяем найденное и окрестные значения на минимальное отклонение от искомого.
Можно исходный массив сразу отсортировать по одному из полей, тогда индексных понадобится на один меньше.
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051468
breee3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gluck_13 это уже интереснее! вот только не понял как бинарный поиск должен работать... можно "на кошечках"?
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051477
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breee3, в .net уже реализован бинарный поиск по отсортированному массиву: Array.BinarySearch<T> .
...
Рейтинг: 0 / 0
Класс для поиска десятичных данных по нескольким полям
    #39051481
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще можно было уже консольное приложение накидать, где сгенирировать 5 колонок по 10000 значений в каждой, или 10000 строк по 5 значений.
И убедиться в том, что рано думать о быстрых сортировках, индексах и бинарном поиске :)
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Класс для поиска десятичных данных по нескольким полям
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]