C.
void selection(int *t, int taille)
 int i, mini, j, x;
 for (i = 0; i < taille - 1; i++)
 mini = i;
 for (j = i + 1; j < taille; j++)
 if (t[j] < t[mini])
 mini = j;
 x = t[i];
 t[i] = t[mini];
 t[mini] = x;
C++.
Old C++ (before 2011).
void triSelection(int tab[], int const taille)
 int i, min, j;
 for (i = 0; i < taille - 1; ++i)
 min = i;
 for (j = i + 1; j < taille; ++j)
 if (tab[j] < tab[min])
 min = j;
 if (min != i)
 std::swap(tab[i], tab[min]); // defined in <algorithm> before C++11
Modern C++ ( use -std=c++11 to compile ).
template< typename T >
void triSelection( T& tab )
 typename T::iterator min, jt;
 for( typename T::iterator it = tab.begin(); it < tab.end()-1; ++it )
 min = it;
 for( jt = it+1; jt < tab.end(); ++jt )
 if( *jt < *min )
 min = jt;
 if( min != it )
 std::swap( *it, *min );
Note that this example can not be used with classic arrays ( "int tab[50];" ) but it can be used with any container, including std::array, which is a classic array in the final binary. The advantage of std::array being that you can retrieve it's size without the need of global constants ( no need to do things like "#define SIZE 50" or "const size_t SIZE = 50;" as in C, and so less dangers of error when you do changes ).
Caml.
Tri de vecteurs en Caml Light, en ordre décroissant :
let tri_select t =
 let n = vect_length t and m = ref(0) and i = ref(0) in
 for j=0 to (n - 2) do
 m := t.(j);
 i := j;
 for k = (j + 1) to (n - 1) do
 if !m < t.(k) then begin
 m:= t.(k);
 i:= k;
 end
 done; 
 t.(!i) <- t.(j); t.(j) <- !m;
 done;
t;;
Haskell.
selTri :: Ord a 26 => [a] -> [a]
remFirstOcc :: Ord a => a->[a] -> [a]
selTri [] = []
selTri l = m: selTri (remFirstOcc m l)
 where m = minimum l
remFirstOcc n (x:xs)
 | (x == n) = xs
 | otherwise = x:(remFirstOcc n xs)
Java ou C#.
 public void sortBySelection(int[] t, int sizeOfTheCollection) {
 int i, min, j , x;
 for(i = 0 ; i < sizeOfTheCollection - 1 ; i++)
 min = i;
 for(j = i+1 ; j < sizeOfTheCollection; j++)
 if(t[j] < t[min])
 min = j;
 if(min != i)
 x = t[i];
 t[i] = t[min];
 t[min] = x;
JavaScript.
T est un tableau de nombres dont le premier indice est 0, et n est un entier tel que l'on souhaite trier T[0..n-1].
function executer_tri_par_selection (T, n) {
 if (T.length < 2) return T;
 var i, indice_min, j, temp;
 for (i = 0; i < n - 1; i++) {
 indice_min = i;
 for (j = i + 1; j < n; j++) {
 if (T[j] < T[indice_min])
 indice_min = j;
 if (indice_min != i) {
 temp = T[i];
 T[i] = T[indice_min];
 T[indice_min] = temp;
 return T;
Pascal.
 procedure TriSelection(n : integer ; var t : tab);
 var i, j, min, tmp : integer;
 begin
 for i := 1 to n - 1 do begin
 min := i;
 for j := i + 1 to n do
 if (t[j] < t[min]) then min:=j;
 if (i <> min) then begin
 tmp := t[i];
 t[i] := t[min];
 t[min] := tmp;
 end;
 end; 
 end;
PHP.
function triSelection(&$arrayOf)
 $count = count($arrayOf);
 for($i=0;$i<$count-1;$i++)
 $min = $i;
 $minV = $arrayOf[$min];
 for($j=$i+1;$j<$count;$j++)
 if($arrayOf[$j] < $minV)
 $min = $j;
 $minV = $arrayOf[$min];
 if($min != $i)
 $arrayOf[$min] = $arrayOf[$i];
 $arrayOf[$i] = $minV;
Python.
import random
MAX_LENGTH = 100
un_tableau = [ k for k in range(0,MAX_LENGTH) ]
random.shuffle(un_tableau)
for k in range(0,MAX_LENGTH) :
 min = k
 for l in range(k+1, MAX_LENGTH) :
 if un_tableau[l] < un_tableau[min] :
 min = l
 if min is not k :
 number = un_tableau[k]
 un_tableau[k] = un_tableau[min]
 un_tableau[min] = number

Débutez dans IRC/Opérateurs et voices
Vous êtes opérateur d'un salon de discussion. L'opérateur a accès à des fonctions avancées qui sont présentées ici.
Les grades.
Un de vos membres est gênant : vous pouvez l'expulser du channel en le "kickant", à l'aide de codice_1 (il est facultatif de donner une raison).
Vous vous étiez malencontreusement trompé d'utilisateur, et vous vous apercevez qu'il est en fait quelqu'un de confiance. Afin de garantir la surveillance de votre channel, vous lui donnez le statut d'opérateur. Entrez codice_2.
Le statut d'opérateur est important, vous préférez finalement gouverner seul. Pour enlever le statut d'opérateur à un utilisateur, utilisez codice_3.
Notre cobaye ne semble pas très heureux ! Consolons-le en lui donnant le statut de voice à l'aide de codice_4.
Tout compte fait, il est peut-être préférable de le laisser au rang d'utilisateur. Enlevez-lui son grade de voice à l'aide de codice_5 !
Les modes.
Les modes sont activés en utilisant codice_6. Ils sont retirés avec codice_7.
Le mode codice_8 empêche tout utilisateur qui n'est pas invité de rentrer dans votre salon.
Le mode codice_9 empêche l'utilisation de pseudos non enregistrés auprès de NickServ. 
Le mode codice_10 empêche la modification du topic par des personnes qui ne sont pas opératrices.
Le mode codice_11 rend le channel secret : il n'est plus affiché lors d'un codice_12. 
Le mode codice_13 efface le channel de la liste des canaux.
Le mode codice_14 empêche toute personne qui n'est pas opératrice ou voice de parler.
Le mode codice_15 protège le salon par un mot de passe qui doit être indiqué à la fin de la commande (par exemple codice_16).
Le fondateur.
Le fondateur du channel a accès a des fonctionnalités avancées. Pour changer le fondateur du canal, celui-ci doit entrer codice_17.
Le fondateur peut par exemple supprimer son salon avec codice_18. Une confirmation est demandée par ChanServ.
La description du channel.
Pour définir quelle URL est associée avec un channel, entrez codice_19. Pour enlever l'URL, entrez codice_20.
Pour modifier la description du salon, entrez codice_21.
Expulser définitivement quelqu'un du salon.
Pour expulser quelqu'un définitivement, utilisez codice_22. Pour obtenir l'adresse IP, utilisez codice_23. Expulsez ensuite la personne avec codice_24.

Débutez dans IRC/Pour aller plus loin
Débutez dans IRC/Créer un canal
Vous souhaitez créer votre propre salon de discussion ? C'est possible, mais auparavant, assurez-vous qu'il n'en existe pas de similaires. N'oubliez pas qu'un salon est fait pour rassembler des gens et qu'il est peu pratique d'être disséminé sur plusieurs canaux...
La première étape est de rejoindre ce salon avec la commande codice_1. Vous allez maintenant enregistrer votre salon auprès du réseau avec codice_2. Puis, pour éviter que quelqu'un d'autre ne prenne le contrôle de votre salon, invitez ChanServ, qui est un robot informatique fourni par Freenode chargé de « garder » le canal pendant votre absence, à l'aide de codice_3.
ChanServ arrive, vous pouvez commencer à gérer une liste de personnes qui seront élevées opératrices ou "voices" automatiquement à leur arrivée à l'aide de codice_4 (pour opérateurs) ou codice_5 (pour "voices"). Enfin, pour que le topic reste en votre absence, il faut taper codice_6.

Photographie/Personnalités/A/Thomas Annan