User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: Исключить повторы из массива

  1. #11

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    479
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    главное чтобы ваши оптимизации не были больше 256 байт... 8 чисел можно и отсортировать быстренько, а потом просто проверять, равен текущий предыдущему или нет.
    патчить команды на ходу хорошо только в демах или интрах. а так это зло.
    У меня это в реалтайме всё будет работать, поэтому скорость важна.
    Сортировать мне не нужно, т.к. пересечений нет... нет смысла думать о порядке. Значений всего 255.

    С битовым способом можно всё по OR быстро сложить, дубли объединятся.

    На этапе обработки массива тока быстро вычислить нужно будет.

    Примеры?
    Последний раз редактировалось drbars; 12.08.2013 в 14:12.

  2. #12
    ZEK
    Гость

    По умолчанию

    а запись в табличку через set bit, (IX+offs) все таки быстрее будет патчем, в bit младшие 3 бита найденного числа, в offs старшие 5 бит, шустрее будет

  3. #13

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    479
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    а запись в табличку через set bit, (IX+offs) все таки быстрее будет патчем, в bit младшие 3 бита найденного числа, в offs старшие 5 бит, шустрее будет
    Код:
    	LD A,#08
    	LD IX,ARRAY
    
    	LD B,A
    	AND %00000111
    	RLCA
    	RLCA
    	RLCA
    	OR #C6
    	LD (PATCH+3),A
    
    	LD A,B
    	AND %11111000
    	RRCA
    	RRCA
    	RRCA
    	LD (PATCH+2),A
    
    PATCH	SET 0,(IX+0)


    ---------- Post added at 17:44 ---------- Previous post was at 17:32 ----------

    Что-то не уверен в быстроте, два деления делать 8 раз!

  4. #14

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    drbars, а чего вообще то нужно сделать?
    уточни условия
    просто убрать последовательные повторения или надо убрать любые повторения?
    С уважением,
    Jerri / Red Triangle.

  5. #15
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Что-то не уверен в быстроте
    тут 2 момента, алгоритм состоит еще из чтения, и этот кусок примерно раза в два шустрее сделать можно

  6. #16

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    479
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    drbars, а чего вообще то нужно сделать?
    уточни условия
    просто убрать последовательные повторения или надо убрать любые повторения?
    любые повторения пример я выше сделал, но тормозной)

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    любые повторения пример я выше сделал, но тормозной)
    не сильно тормозной
    Код:
    ;на входе данные в массиве 1
    ;на выходе - HL массив; BC длинна
        
        ld bc,1
        ld de,array1
        ld a,(de)
        inc de
        exx
        ld hl,array2
        ld (hl),a
        ld bc,1
        exx
    loop0
        push bc
        ld a,(de)
        ld hl,array1
        cpir
        pop bc
        jr z,loop1
    
        exx
        ld (hl),a
        inc bc
        exx
    
    loop1    
        inc de
        inc bc
        ld a,c
        cp 8
        jr nz,loop0
        exx
        ret
    array1    db 1,2,1,3,1,4,1,5
    array2    db 0,0,0,0,0,0,0,0
    Последний раз редактировалось jerri; 12.08.2013 в 16:09.
    С уважением,
    Jerri / Red Triangle.

  9. #18

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    479
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    не сильно тормозной
    Фишка в том, что процедура вызываемая из цикла запарывает все регистры даже альтернативные
    Можно использовать SP и IX,IY
    Последний раз редактировалось drbars; 12.08.2013 в 16:24.

  10. #19

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну или вот если стек не хочешь дергать
    Код:
    ;на выходе 
    ;HL- массив
    ;ВС- длинна массива
    	
    	ld de,array1
    	ld bc,1
    	ld a,(de)
    	inc de
    	exx
    	ld hl,array2
    	ld bc,1
    	ld (hl),a
    	exx
    loop0
              ld b,c
    	ld a,(de)
    	ld hl,array1
    loop2
    	cp (hl)
    	inc hl
    	jr z,loop1
    	djnz loop2
    	exx
    	ld (hl),a
    	inc bc
    	exx
    loop1	
    	inc de
    	inc c
    	ld a,c
    	cp 8
    	jr nz,loop0
    	exx
    	ret
    array1	db 1,2,1,3,1,4,1,5
    array2	db 0,0,0,0,0,0,0,0


    ---------- Post added at 16:23 ---------- Previous post was at 16:23 ----------

    из какого цикла?
    С уважением,
    Jerri / Red Triangle.

  11. #20

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вопрос, а в каком соотношении чтения/записи
    и насколько важно быстродействие записи ?
    а то сделать вставку со сдвигом ??

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 454
    Последнее: 04.01.2017, 00:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •