Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.
Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.
O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.
Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.
Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
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 */
Tiskni Sdílej:
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ů.
start+(end-start)/2
lze napsat takto: (start+end)/2