abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 4
    12.9. 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

    Ladislav Hagara | Komentářů: 0
    12.9. 12:00 | Zajímavý článek

    Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).

    🇵🇸 | Komentářů: 20
    12.9. 05:33 | Bezpečnostní upozornění

    Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.

    Ladislav Hagara | Komentářů: 0
    11.9. 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

    Ladislav Hagara | Komentářů: 16
    11.9. 17:33 | Nová verze

    Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 1
    11.9. 15:33 | IT novinky

    Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.

    Ladislav Hagara | Komentářů: 0
    11.9. 15:00 | IT novinky

    Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.

    Ladislav Hagara | Komentářů: 8
    10.9. 21:22 | Nová verze

    Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 176 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Quicksort

    6.3.2005 13:00 | Přečteno: 3957× | Linux | poslední úprava: 8.7.2005 09:43

    Nemaje klasického informatického vzdělání byl jsem toho ve škole ušetřen. O čem mluvím? Všechny ty algoritmy pro třídění a tak. No a pak to člověk potřebuje a neví. Když už to zjistí, tak si to chce vytesat do kamene. Ehm do webu. Tak taky rozšířím zbytečně duplicitní stránky, na kterých je taková, nebo onaká implementace quicksortu. Až to zas někdy budu potřebovat a jestli bude abíčko ještě existovat, tak to třeba tady najdu.

    #include <sys/time.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    #define timedif(start, stop) \
      (u_int)((stop)->tv_sec - (start)->tv_sec - ((stop)->tv_usec < (start)->tv_usec))
    
    #define utimedif(start, stop) \
      (u_int)((stop)->tv_usec - (start)->tv_usec + 1000000*((stop)->tv_usec < (start)->tv_usec))
    
    #define N       (10000000)
    #ifndef __u_char_defined
    typedef __u_int u_int;
    #endif
    u_int numbers[N];
    
    #define swap(i,j) \
      { register u_int pom=*i; *i=*j; *j=pom; }
    
    void quicksort(u_int *start, u_int *end)
    {
      u_int *i, *low=start;       /* low is place for pivot */
      for(i=start; i<end; i++)
      {
        if(*i<*end) /* end element is pivot */
        {
          swap(i, low);
          low++;
        };
      };
      swap(low, end);  /* place pivot to his place */
      if(start<low-1)
        quicksort(start, low-1);
      if(low+1<end)
        quicksort(low+1, end);
    }
    
    int main(void)
    {
      u_int rand_seed;
    #ifdef __USE_BSD
      struct timezone foo_;
      struct timezone *foo=&foo_;
    #else
      void *foo=NULL;
    #endif
      struct timeval start, stop;
    
      gettimeofday(&start, foo);
      rand_seed = start.tv_usec;
      srand(rand_seed);
    
      {     /* init numbers */
        u_int i;
        for(i=0; i<N; i++)
          numbers[i]=rand();
      }
    
      /* start measure */
      gettimeofday(&start, foo);
      quicksort(numbers, numbers+N-1);
      /* measure time */
      gettimeofday(&stop, foo);
      printf("#Sorting %d numbers consumed %d.%06dsec\n",
          N, timedif(&start, &stop), utimedif(&start, &stop));
    
      {     /* test result */
        u_int i;
        char OK=1;
        for(i=0; i<N-1 && (OK &= numbers[i]<= numbers[i+1]); i++);
        printf(OK?"All OK.\n":"Something bad.\n");
        return !OK;
      }
    }

    P.S.: Tato implementace není vhodná pro částečně setříděné pole. Patch pro částečně setříděná pole:

    @@ -20,6 +20,7 @@
     void quicksort(u_int *start, u_int *end)
     {
       u_int *i, *low=start;       /* low is place for pivot */
    +  swap(start+(end-start)/2, end);
       for(i=start; i<end; i++)
       {
         if(*i<*end) /* end element is pivot */
           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    6.3.2005 15:52 Christof | skóre: 22 | Havířov
    Rozbalit Rozbalit vše BogoSort
    QuickSort je k ničemu, nejlepší třídící algoritmus je BogoSort :-) viz http://en.wikipedia.org/wiki/Bogosort
    6.3.2005 19:15 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: BogoSort
    Tak ten je fakt dobrej. Ten ihned implementuju do svého realtime adaptivního regulátoru.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    Vašek Lorenc avatar 7.3.2005 01:02 Vašek Lorenc | skóre: 27
    Rozbalit Rozbalit vše Re: BogoSort
    Tak, jak je tam uvedený, má jednu zásadní chybku -- když půjde všechno šejdrem, není nikde zaručeno, že to vůbec skončí.. Ale jinak je to dost kvalitka, o tom žádná :)
    ...včetně majestátného loosa
    6.3.2005 16:32 Honza "tux" Friesse | skóre: 15 | blog: Tuxův blog | Vyškov
    Rozbalit Rozbalit vše To se hodí...
    ... ještě sem hoď nějaké stromové etudy (AVL stromy,...) a nějaké vyhledávací algoritmy (třeba boyer-moora). To by opravdu mnohým pomohlo (včetně mě).
    Vašek Lorenc avatar 6.3.2005 17:05 Vašek Lorenc | skóre: 27
    Rozbalit Rozbalit vše Re: To se hodí...
    A případně trochu povídání o dynamickém programování a aproximativních algoritmech, ať si lidi trochu počtou -- evidentně je to občas potřeba a praktické příklady kolem toho se hodí..
    ...včetně majestátného loosa
    6.3.2005 23:33 Jiri Bajer | skóre: 34 | blog: Sarimuv koutek | Praha
    Rozbalit Rozbalit vše Re: To se hodí...
    Mrkni se na knihovnu Aapl, treba tam najdes uz hotove reseni... Why to reinvent the wheel? ;-)
    7.3.2005 08:48 Ladislav Thon
    Rozbalit Rozbalit vše Malá noticka terminologická...
    Je to skutečně třídění, nebo spíš řazení? :)
    7.3.2005 09:12 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Malá noticka terminologická...
    No to mě mohlo napadnout, ale nenapadlo. Tak jo, je to řazení. Spokojen?
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    7.3.2005 09:26 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Malá noticka terminologická...
    A vlastně jo. Je to třídící algoritmus, jehož výsledkem je seřazená posloupnost. Jiné řadící algoritmy možná skutečně provádějí řazení, ale tenhle ne. Tenhle třídí. Co jiného dělá tahle část?
      for(i=start; i<end; i++)
      {
        if(*i<*end) /* end element is pivot */
        {
          swap(i, low);
          low++;
        };
      };
    
    Ta část jednoznačně provádí třídění na prvky menší než *end a na prvky nemenší. To je třídění jak vyšité. Je to třídící algoritmus na řazení rpvků.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    7.3.2005 17:44 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Malá noticka terminologická...
    O řadících algoritmech jsem ještě neslyšel... Ale je pravda, že železniční doprava není zrovna můj obor :)
    8.3.2005 08:30 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Malá noticka terminologická...
    Ale no tak. Vždyť má pravdu. Třídící algoritmus by musel něco třídit a třídění je rozdělování nějakého souboru dat do kategorií. Výsledkem řazení je seřazený soubor dat, což je jaksi něco úplně jiného.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    8.8.2005 08:23 net-ray
    Rozbalit Rozbalit vše Dodatek
    Vyraz start+(end-start)/2 lze napsat takto: (start+end)/2
    b42 avatar 7.6.2007 22:44 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: Quicksort
    (ja vim ze jsem se asi o dva roky zpozdil, ale kdyby na to nekdo nekdy nahodou narazil tak:) http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.