|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
Ускорить работу макроса30.11.2017, 16:27. Показов 5818. Ответов 117
Метки нет (Все метки)
Как ускорить работу скрипта?
0
|
||||||
| 30.11.2017, 16:27 | |
|
Ответы с готовыми решениями:
117
Как ускорить работу макроса Можно ли ускорить работу макроса
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 19:43 [ТС] | |
|
fever brain, это я понял, я про target..
Добавлено через 4 минуты Потом почему long возвращает функция? Она ж должна возвращать integer, тк позиции элементов массива у нас целые числа. Или я что то путаю?
0
|
|
|
oh my god
|
||
| 30.11.2017, 19:45 | ||
|
Пускай тебя не смущает что текстовые выражения тоже можно сравнивать математическими операциями <>=
если массив сортирован как текст то этот метод будет работать правильно а главное быстро Добавлено через 1 минуту
0
|
||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 19:49 [ТС] | |
|
fever brain, хотелось бы узнать отзыв об этом коде http://excelvba.ru/code/SearchArray
Так же поиск методом половинного деления работает ещё быстрее или так же как вышеприведенный код?
0
|
|
| 30.11.2017, 19:50 | |
|
0
|
|
|
oh my god
|
||
| 30.11.2017, 19:55 | ||
|
а я привел самый простой код от этой класики там примерно то-же самое Хочу еще добавить если все значения в массиве текстовые то аргумент target ставь string
0
|
||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 19:56 [ТС] | |
|
fever brain, принцип работы тогда получается, что нам надо делать цикл только по одному массиву(тот что с листа) и его значения засовывать как target, верно? По полученному индексу получить значение из другого массива?
0
|
|
|
oh my god
|
|
| 30.11.2017, 20:02 | |
|
да, первый массив просматриваешь последовательно
все другие массивы если они упорядоченны просматривай быстрым поиском в чем преемущество, число шагов будет гораздо меньше что такое 69000 элементов это примерно 16 раз нужно сравнить больше-меньше вместо всех 69000 !
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 20:09 [ТС] | |
|
fever brain, хорошо, а если есть дубли, как себя это будет вести?
Добавлено через 52 секунды Или не упорядочены массивы
0
|
|
|
oh my god
|
||||||||
| 30.11.2017, 20:20 | ||||||||
|
Добавлено через 2 минуты или ищи метод быстрой сортировки там тоже число шагов сильно меньше тех что обычно используют Добавлено через 6 минут
0
|
||||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 20:23 [ТС] | |
|
fever brain, а этот qSort для двумерного массива?
0
|
|
|
oh my god
|
|
| 30.11.2017, 20:27 | |
|
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 20:29 [ТС] | |
|
fever brain, а мне нужен для двумерного. У меня оба массива двумерные...
0
|
|
|
oh my god
|
||
| 30.11.2017, 20:38 | ||
|
Двумерный массив состоит из одномерных
например 3x3 это три одномерных с тремя элементами в каждом Добавлено через 1 минуту Добавлено через 1 минуту неудобства только в том что запись придется делать такого вида arr(x,y) вместо arr(x) все остальное также применимо, если с толком подойти к этому делу.
0
|
||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 21:00 [ТС] | |
|
fever brain, не напугало ничего, что то я не допираю никак где это править там. Что туплю уже. Потом надо добавить ещё одну входную переменную номер столбца по которому сортировать. Плюс проверку на то что больше максимального кол-ва столбцов и чтоб не меньше минимального. Так же я не помню как получить кол-во во столбцов двумерного массива. Кол-во строк ещё помню(Ubound(mass))
0
|
|
|
oh my god
|
|||||||
| 30.11.2017, 21:09 | |||||||
|
получить можно так
0
|
|||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.11.2017, 21:20 [ТС] | |
|
fever brain, точно точно, нашел в записках аналогичную запись. Осталось только переписать под двумерный массив сортировку. Но написанная тут сортировка в одну строку сильно усложняет чтиво.
0
|
|
|
oh my god
|
||
| 30.11.2017, 21:24 | ||
|
я б даже сделал оба метода (сортировка-поиск) под двумерный массив, только не охота мне для практики этого не надо, понадобилось бы сделал ))
0
|
||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
| 30.11.2017, 21:43 [ТС] | ||||||
|
fever brain, завтра попробую собрать все в кучу и провести тестовый загон. Отпишусь о результатах.
Добавлено через 15 минут fever brain, как вот эту строку заточить под двумерный массив?
0
|
||||||
|
oh my god
|
||
| 30.11.2017, 21:50 | ||
![]() Вот смотри: у тебя двумерный массив который состоит из одномерных упорядочивать нужно последовательно по столбцам или по строкам Значит нужно в процедуру добавить еще один аргумент назовем его x qSort array,x,lbound,ubound Arr(x,(ii + jj) \ 2) иксом будет текущий сортируемый столбец Добавлено через 1 минуту но если как ты писал ранее все упорядоченно то с этим можно не париться
0
|
||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
| 30.11.2017, 21:55 [ТС] | ||||||
|
fever brain, стоп, сортировать надо правильно. То есть двигать всю строку, то есть надо с собой тащить не только в этом столбце значения, но и все остальные что есть в соседних столбцах.
Добавлено через 3 минуты И правильнее будет тогда
0
|
||||||
| 30.11.2017, 21:55 | |
|
Помогаю со студенческими работами здесь
40
Ускорить код макроса Ускорить действие макроса переноса данных на другой лист
Как ускорить работу пользовательской функции с диапазонами Как прекратить работу макроса? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|