Sortowanie liczb binarnych

0

Dzień dobry,
Dostałem taki pseudokod http://pastebin.com/FkjpGeHU i na jego podstawie chciałbym stworzyć algorytm sortowania liczb binarnych. Jednak nie za bardzo rozumiem niektórych fragmentów tego kodu, np co oznacza &m>0? Metoda na pierwszy rzut oka wygląda na zliczanie, ale czy nie powinno być na końcu jakiejś rekurencji, żeby posortować wg drugiego najważniejszego bitu? Bo teraz zlicza chyba tylko na podstawie pierwszego (mogę się mylić :P)? Z góry dziękuję za wszelkie sugestie.

1

& oznacza bitowe and, potem w grę wchodzi jeszcze znajomość kolejności wykonywania działań w C++ :-P

0

@Patryk27 o działania w którym miejscu się rozchodzi?

1

O tę część: C[A[i]&m>0]++;.

Rozbijając kolejno ten fragment:

C[A[i]&m>0]++;
C[ (A[i]&m) > 0]++;
if (A[i]&m > 0) {
  C[1]++;
} else {
  C[0]++;
}
0

Rozumiem. Czyli po tym sortowaniu będziemy mieli 2 grupy, pierwszą z '0' na początku, drugą z '1'? Teraz trzeba przesunąć wskaźnik na następny bit? Dobrze rozumuję?

1 użytkowników online, w tym zalogowanych: 0, gości: 1