Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 2
RSS
Алгоритмы
 
JeyCi, так и не дошел до исходников :)
Зато решил поделится собственным опытом.
«Бритва Оккама» или «Принцип Калашникова»?
 
вот на днях и VBA Как сделать поиск ещё быстрее?
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал: JSON: JavaScript Object Notation, - структура
посмотреть в Locals результат отработки функции
Код
Function jsonParseS(str As String) As Variant
'Add Microsoft Script Control 1.0 in Tools/Reference
'или позднее связывание use
Dim objSC As ScriptControl
'Set objSC = CreateObject("scriptcontrol")
Set objSC = New ScriptControlobjSC.Language = "JScript"
strFunc = "function jsonParse (str) {return eval ('(' + str + ')');}"
objSC.AddCode strFunc
'jsonParse() method only pass the json-string, object is returned
Set jsonParseS = objSC.CodeObject.jsonParse(str)
End Function
чтобы увидеть нужен ли он...
но чтобы считывать в строку/массив или др - погуглить функции парсинга или класс JsonBag (не раз используемый в примерах на этом форуме)
Изменено: JeyCi - 22 янв 2018 12:19:32
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
кстати json можно регулярить:
Код
RegExp.Pattern = "" & Chr(34) & "(.+?)" & Chr(34) & ":(.+?),"   'берёт каждый элемент (key & item) отдельно

по RegEx - на разных языках - Регулярные выражения. Сборник рецептов
Изменено: JeyCi - 25 мар 2020 06:51:33
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
язык, умеющий работать с памятью напрямую - Стефенс Д. - C++. Сборник рецептов
здесь можно посмотреть Оглавление
Изменено: JeyCi - 28 авг 2019 07:58:05
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
к слову об Алгоритмах и их оптимизации - не всё так просто, как отметил bedvit...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Python сам парсит json своими силами ..  - IDE PyScripter... Python 3.6
удобнее, чем Script Control 1.0 в VBA x32

по линкам отсюда пройтись, чтобы попробовать заточить это дела для Excel
:) # это коммент......
Изменено: JeyCi - 1 ноя 2019 10:19:36
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
много JSON'ов - запросто превращаются в 1 json... всё просто (даже без алгоритма)
Изменено: JeyCi - 22 ноя 2019 09:44:34
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
на Python - но описания хорошие
Алгоритмы – часть 1. Жадные алгоритмы, алгоритм Дейкстры.
Алгоритмы – часть 2. Разделяй и властвуй.
p.s.
Быстрая сортировка в Python
Цитата
распараллеливание будет не так эффективно, как в случае сортировки слиянием.
p.p.s
- это та, которая QuickSort (NB не всегда эффектвна)
Изменено: JeyCi - 29 ноя 2019 12:56:41
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
нельзя не вспоминать разработки на С/С++ от bedvit:
ArraySortV (Variant) , (1-й код) ,  
ArraySortS (String) ,
Transpose ,
Vlookup ,
FilterUnicodeChar ,
Replace,
InStr ,
Bignum arithmetic ,
Многопоточность в VBA .....
это всё на основе Программирование с использованием API C в Excel
Изменено: JeyCi - 8 мар 2020 08:22:14
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
С++: (из работы bedvit по сортировке)
Цитата
concurrency::parallel_buffered_sort    //указателей !!
нашлась статья в тему - Vector of Objects vs Vector of Pointers And Memory Access Patterns - т.е. если использовать параллельную сортировку, да ещё и указателей, а не самих данных... [даже какие-то графики производительности по использованию указателей]
N.B. параллельность - это отдельная история - но приятно, что на C++ её уже и писать не надо, она часто реализована в самом стандарте C++ (его библиотеках)... раньше многие из них можно было найти в boost-библиотеках (доп. к стандарту)
===
параллельность + указатели = скорость алгоритма... сами алгоритмы - многие - уже реализованы в std::algorithms - даже изобретать велосипед не надо
Изменено: JeyCi - 25 мар 2020 06:26:12
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
справедливости ради, всё-таки отмечу...
насколько помню, многие библиотеки С++ изначально появлялись из VB-библиотек вроде... и в VB-библиотеках можно найти что-то интересное... проблема не в VBA, а именно в способах взаимодействия VBA с объектной моделью Excel - НЕ быстро... по сравнению с С/C++, который взаимодействует с объектной моделью Excel на порядок быстрее... - т.е. работа с самими ячейками и т,д, Excel'я...
хотя, конечно, на нынешнем этапе возможности стандарта C/C++ достаточно разрослись и не все они, полагаю, внедрены в vb/vba... имхо
Изменено: JeyCi - 25 мар 2020 06:24:22
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
строки в DLL (Unicode <-> ANSI) - линк здесь
Изменено: JeyCi - 25 мар 2020 07:08:50
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал: параллельность - это отдельная история
Используем параллельные алгоритмы C++17 для улучшения производительности
Цитата
Прежде всего, параллелизм — это оптимизация.
Если в ходе тестов параллельный алгоритм не даёт преимуществ для разумных значений N, то мы его не распараллеливаем.
- поэтому разработчики библиотек нам нужнее, чем если мы сами начинаем параллелить, разрабатывая велосипед...
с появлением C++v.17 (17-го стандарта) - спасибо тем, кто его разрабатывает :) - они же и тестят свои разработки перед вводом в Стандарт
Цитата
C++17 updated std::search algorithm in two ways:
•you can now use execution policy to run the default version of the algorithm but in a parallel way.
•you can provide a Searcher object that handles the search.
p.s.
в общем и целом линк я уже в принципе где-то оставляла - 10 лучших алгоритмов и структур данных для конкурентного программирования... [но это для threads - потоков, полагаю]
для них можно и свой велосипед изобретать [когда в библах ещё ничего нет или нужен какой свой Wrapper, aka Adapter - паттерн проектированя] ...
Распараллеливание задач через функцию «Подождать до завершения подзадач» - в принципе во многих языках async await-реализация уже присутствует... [это для async - полагаю]
p.p.s.
не забывая, что распаралеливание бывает на уровне ядра (для CPU-bound задач) и на уровне данных (для IO-bound задач)... имхо... не путать потоки и асинхронность между собой
Изменено: JeyCi - 25 мар 2020 08:52:57
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: Пред. 1 2
Читают тему (гостей: 2)
Наверх