Inviate il vostro codice

Salve, sono Giovanni
ho creato questo spazio web per inserirvi pezzi di codice che si possono definire "esoterici" oppure implementazione di algoritmi non canonici o comunque piccoli pezzetti di programmi che si ritengono particolarmente complessi o belli. Non so se mi è concesso definirli tale ma ho voluto chiamarli codici da Hacker.... penso mi abbiate capito.
Vi chiedo pertanto di inviarmi (magari rispondendo ai vari post) i vostri codici, così da permettermi di publicarli. Potete anche mandarmeli via mail ma preferisco che siano pubblici da subito e poi gli dedicherò un post.
Se ci saranno parecchi codici si terranno anche sessioni di voto per descrivere il migliore.
Buona navigazione

martedì 1 gennaio 2008

Array Shifter

CODER: Santostefano Giovanni (http://santostefanogiovanni.blogspot.com)
LINGUAGGIO: C

Innanzitutto Felice anno nuovo a tutti! (e un subliminale augurio affinchè molta gente quest'anno passi a Linux! :D )
Per questo primo dell'anno ho programmato un semplicissimo codice per shiftare un sottoarray. Ovviamente lo shift è ciclico nel senso che
1,2,3,4,5
shiftato di +2 posizioni diventa
4,5,1,2,3

Il tutto è implementato solo con funzioni memcpy della stdlib.
Buona lettura a tutti

martedì 25 dicembre 2007

Array Reverse

CODER: Santostefano Giovanni (http://santostefanogiovanni.blogspot.com)
LINGUAGGIO: C

Salve,
Buon Natale a tutti!
Questa mattina... come regalo (quando si dice basta il pensiero) ho scritto un pezzetto di codice per invertire un array ricorsivamente(o un intervallo dell'array).
E' davvero molto semplice e stringato... uno degli indubbi premi della ricorsione.


ciao
Giovanni

domenica 23 dicembre 2007

BitMasking

CODER: Santostefano Giovanni (http://santostefanogiovanni.blogspot.com)

Salve,
oggi ho scritto un piccolissimo code snippet che si occupa di verificare se uno specifico bit in un byte è settato a 1.
La funzione accetta in ingresso un char che corrisponde al byte su cui facciamo le verifiche e il numero di bit che desideriamo verificare se è posto ad 1.
Il programma potrebbe essere ancora più offuscato e ridotto ad una sola linea! ve lo lascio come esercizio :P


ciao
Giovanni

venerdì 21 dicembre 2007

Presentation! and Counting Sort

Salve,
sono Giovanni Santostefano e sono lieto di aprire questo sito atto ad ospitare stralci di codice o piccole funzioni che alcuni possono definire "esoteriche" oppure implementazioni di algoritmi magari poco conosciuti o particolarmente divertenti.
Le regole del gioco sono queste: Chiunque voglia dire la sua può farlo. Quando ho tempo, le conoscenze e la voglia scrivo un pezzetto di codice che magari ritengo particolarmente bello.
Tuttavia in questa iniziativa non posso camminare da solo. Ad ogni post potete rispondere, dare impressioni, suggerimenti e consigli ma è molto importante che voi scriviate altri pezzetti di codice che poi posso inserire in futuri post. Potete scrivermeli come commento ad un post (anche se è off topic rispetto al post) oppure mandarmeli via email a idmgiovanni[at]libero[dot]it.
I pezzetti di codice devono essere ovviamente accompagnati da una minima descrizione.
I codici preferiti da questo sito ovviamente sono quelli più particolari, spesso codati in pochissime righe o che contengono parti assembly ecc....
Se ci sarà una certa frequenza di codice ogni intervallo di tempo prefissato (1 o 2 mesi) si terrà una votazione del migliore.

Comunque tralasciando le presentazioni andiamo subito al sodo!
Il primo codice che propongo è il counting sort con cui è possibile ordinare un'array di interi in complessità asintotica O(n)



Commentate ed inviatemi (come commento o via email) i vostri codici

ciao
Giovanni