Byl vydán Mozilla Firefox 145.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Ukončena byla podpora 32bitového Firefoxu pro Linux. Přidána byla podpora Matrosky. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 145 bude brzy k dispozici také na Flathubu a Snapcraftu.
Lidé.cz (Wikipedie) jsou zpět jako sociální síť s "ambicí stát se místem pro kultivované debaty a bezpečným online prostředím".
Byla vydána nová verze 4.4 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.
ASUS má v nabídce komplexní řešení pro vývoj a nasazení AI: kompaktní stolní AI superpočítač ASUS Ascent GX10 poháněný superčipem NVIDIA GB10 Grace Blackwell a platformou NVIDIA DGX Spark. S operačním systémem NVIDIA DGX založeném na Ubuntu.
Desktopové prostredie Trinity Desktop vyšlo vo verzii R14.1.5. Je tu opravená chyba v tqt komponente spôsobujúca 100% vyťaženie cpu, dlaždice pre viac monitorov a nemenej dôležité su dizajnové zmeny v podobe ikon, pozadí atď. Pridaná bola podpora distribúcií Debian Trixie, Ubuntu Questing, RHEL 10 a OpenSUSE Leap 16.
Grafická aplikace Easy Effects (Flathub), původně PulseEffects, umožňující snadno povolovat a zakazovat různé audio efekty v aplikacích používajících multimediální server PipeWire, byla vydána ve verzi 8.0.0. Místo GTK 4 je nově postavená nad Qt, QML a Kirigami.
Na YouTube lze zhlédnout Godot Engine – 2025 Showreel s ukázkami toho nejlepšího letos vytvořeného v multiplatformním open source herním enginu Godot.
Blíží se konec roku a tím i všemožná vyhlášení slov roku 2025. Dle Collins English Dictionary je slovem roku vibe coding, dle Dictionary.com je to 6-7, …
Cloudflare Radar: podíl Linuxu na desktopu dosáhl v listopadu 6,2 %.
Chcete vědět, co se odehrálo ve světě techniky za poslední měsíc? Nebo si popovídat o tom, co zrovna bastlíte? Pak doražte na listopadovou Virtuální Bastlírnu s mikrofonem a kamerou, nalijte si něco k pití a ponořte se s strahovskými bastlíři do diskuze u virtuálního piva o technice i všem možném okolo. Mezi nejvýznamnější novinky patří Průšovo oznámení Core One L, zavedení RFID na filamentech, tisk silikonu nebo nový slicer. Dozvíte se ale i
… více »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:
viz http://en.wikipedia.org/wiki/Bogosort
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