Здравствуйте уважаемые форумчане. Помогите пожалуйста решить задачу.
Условие: 

В массиве целых знаковых чисел (минимум 25 элементов) определить количество различных чисел.
 
Все просто.Есть 2 способа.Быстрый с большим расходом памяти и медленный с маленьким.
Медленный без расхода памяти очень прост.Реализуешь одну из сортировок описанных в статье 
http://habrahabr.ru/post/204600/.
А затем подсчитываешь количество элементов (проверяя 2 соседних на равенство (если соседние элементы не совпадают увеличиваешь счетчик элементов на 1)) .Быстрый на порядок сложнее и требует 2х памяти по сравнении с медленным.
Спасибо большое за совет, но вот только у меня не получилось реализовать метод пузырька. Посмотрите пожалуйста ошибку
;-------------------------------------------------------------------------------
mas db 44,55,12,42,94,18,06,67   ; задаем массив
N=$-mas            ; длина массива mas
X db 0               
;-------------------------------------------------------------------------------
.code
;---------------------
; внешний цикл по i
   mov cx,n-1         
   mov si,1      
cykl1:
   push cx
   mov cx,N
   sub cx,si         
   push si         
   mov si,N-1
cykl2:                
   mov al,mas[si-1]
   cmp mas[si],al
   ja m1      
   mov X,al         
   mov al,mas[si]
   mov mas[si-1],al       
            mov al,X
   mov mas[si],a         
m1:   dec si            
   loop cykl2
   pop si
      inc si
   pop cx
   loop cykl1
;-------------------------------------------------------------------------------
Заранее спасибо
Добавлено через 48 минут и 33 секунды:Получилось) я исправил метод пузырька. Теперь вроде все работает. Подскажите пожалуйста. Где и как создать счетчик?
вот программа
; multi-segment executable file template.
data segment
mas db 44,55,12,42,94,18,06,67   
N=$-mas            
X db 0
ends
stack segment  dw   128  dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
mov cx,n-1         
   mov si,1      
cykl1:
   push cx
   mov cx,N
   sub cx,si         
   push si         
   mov si,N-1
cykl2:                
   mov al,mas[si-1]
   cmp mas[si],al
   ja m1      
   mov X,al            
   mov al,mas[si]
mov mas[si-1],al   
mov al,X
   mov mas[si],al   
m1:   dec si            
   loop cykl2
   pop si
inc si
   pop cx
   loop cykl1
mov ax, 4c00h 
int 21h
ends
Добавлено через 5 часов, 17 минут и 11 секунд:Т.е мы должна добавить счетчик псоле метки м1. Но после того как я добавляю счетчик, то ответы не сходятся. Помогите пожалуйста.