-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: Tomek Kańka <t...@t...eu.org>
Newsgroups: pl.comp.programming
Subject: Re: Szybkie szukanie ustawionego bitu
Date: Mon, 31 Aug 2015 21:21:18 +0000 (UTC)
Organization: ATMAN - ATM S.A.
Lines: 31
Message-ID: <s...@t...dom.local>
References: <1...@4...net>
<s...@t...dom.local>
<v13fst2yrtuh$.1su3vdc690vq2.dlg@40tude.net>
NNTP-Posting-Host: 185.78.135.50
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1441056078 28412 185.78.135.50 (31 Aug 2015 21:21:18
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 31 Aug 2015 21:21:18 +0000 (UTC)
User-Agent: slrn/1.0.2 (Linux)
Xref: news-archive.icm.edu.pl pl.comp.programming:208083
[ ukryj nagłówki ]szemrany <s...@o...off> napisał(a)
> On Mon, 31 Aug 2015 20:39:28 +0000 (UTC), Tomek Kańka wrote:
>
>>> Mam liczbę 64 bit, traktuję ją jako tablicę bitów, zazwyczaj są w niej
>>> ustawione jakieś bity, ale czasem nie.
>>> Jak najszybciej znaleźć indeks ustawionego bitu?
>>> Wiem jak szybko sprawdzić czy zapalone są wszystkie lub żaden, ale jak
>>> odkryć, że "pali" się np. czterdziesty ósmy?
>>> Najprostsza jest pętla z przesuwaniem bitowym i testem skrajnego bitu, ale
>>> w najgorszym razie trzeba przeiterować 63 razy.
>>> Może da się szybciej?
>>
>> A to nie jest "premature optymzation":)?
>
> Raczej nie, to część struktury używanej wielowątkowo i często.
>
>>> Może jakieś operacje arytmetyczne?
>>
>> Jeśłi to tylko jeden bit, to szukaj binarnie.
>
> Algorytm wyszukiwania binarnego wymaga chyba większego zróżnicowania
> elementów w tablicy niż tylko 0 i 1.
Jeśli zapalony jest tylko 1 bit, to wyszukujemy binarnie (w sensie
dzielenia przedziału na połówki). zaczynamy od 2^32 i sprawdzamy, czy
liczba jest wieksza/mniejsza. Na tej podstawie
zawężamy przedział. Zapalony bit znajdziemy w 6 krokach.
--
Tomek
Następne wpisy z tego wątku
- 31.08.15 23:34 szemrany
- 31.08.15 23:37 szemrany
- 31.08.15 23:40 bartekltg
- 01.09.15 08:03 voy
- 01.09.15 10:31 szemrany
- 01.09.15 10:45 g...@g...com
- 01.09.15 11:57 M.M.
- 01.09.15 12:23 szemrany
- 01.09.15 12:30 Radoslaw Szwed
- 01.09.15 13:01 AK
- 01.09.15 13:04 szemrany
- 01.09.15 13:37 bartekltg
- 01.09.15 14:29 szemrany
- 01.09.15 14:40 szemrany
- 01.09.15 16:10 bartekltg
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=