diff --git a/examples/tri_selection/tri.c b/examples/tri_selection/tri.c
index 5bbc7f32a088c42b4a6c8e3880fe0269c5465ff0..e1feebbaba3c57d564f4df4da5125c2888b19e9a 100644
--- a/examples/tri_selection/tri.c
+++ b/examples/tri_selection/tri.c
@@ -1,26 +1,38 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <time.h>
 
 #define SIZE 10
 
-void find_min(double tab[], int i0, int *ind) {
-    double min = tab[i0];
-    *ind       = i0;
+void find_min(double tab[], int i0, int *ind, double *min) {
+    *min = tab[i0];
+    *ind = i0;
     for (int i = i0 + 1; i < SIZE; ++i) {
-        if (min > tab[i]) {
+        if (*min > tab[i]) {
             *ind = i;
-            min  = tab[i];
+            *min = tab[i];
         }
     }
 }
 
 int main() {
+    srand(time(NULL));
     double tab[SIZE];
     for (int i = 0; i < SIZE; ++i) {
         tab[i] = rand() / (double)RAND_MAX;
     }
 
     for (int i = 0; i < SIZE - 1; ++i) {
-        double
+        double min  = tab[i];
+        int ind_min = i;
+        find_min(tab, i, &ind_min, &min);
+        double tmp   = tab[i];
+        tab[i]       = min;
+        tab[ind_min] = tmp;
     }
+
+    for (int i = 0; i < SIZE; ++i) {
+        printf("%f ", tab[i]);
+    }
+    printf("\n");
 }