diff --git a/myTP/exos/exo1 b/myTP/exos/exo1
index 3c7a594c631cf340dc110f33cd270e0c3d91b688..4830ca799654e3d0f8a0a5a01f89e063612725c9 100755
Binary files a/myTP/exos/exo1 and b/myTP/exos/exo1 differ
diff --git a/myTP/exos/exo1.c b/myTP/exos/exo1.c
index 5fd722573e69aacff05ec0af828226512165bbca..34afff77dc229dc9226d8f085b883167a6e84d74 100644
--- a/myTP/exos/exo1.c
+++ b/myTP/exos/exo1.c
@@ -1,20 +1,42 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
+#include <stdbool.h>
+#include <string.h>
+
 
 int Prime();
 int factoriel(int n);
 int perfect(int num);
+bool palindrome(int n ,char* mot);
+void swap(int* a,int *b);
+void bubbleSort(int n, int tab[]);
+void insertionSort(int n, int tab[]);
 
 int main(){
+     int i;
+    int arr[] = { 64, 34, 25, 12, 22, 11, 90 };
+    int n = sizeof(arr)/ sizeof(arr[0]);
+    
+    for (i = 0; i < n; i++)
+        printf("%d ", arr[i]);
 
+    //bubbleSort(n,arr);
+    insertionSort(n,arr);
+    printf("\nSorted array: \n");
+   
+    for (i = 0; i < n; i++)
+        printf("%d ", arr[i]);
+
+    
+    printf("N: %d",n);
 
     //printf("%u",Prime());
 
     //printf("%u ",factoriel(4));
-    perfect(0);
+    //perfect(0);
 
-    palindrome(0,"kayak");
+    //palindrome(0,"kayadfk");
     
 }
 
@@ -69,21 +91,81 @@ int perfect(int num){
 
     }    
 }
-
 bool palindrome(int n ,char* mot){
 
-    length=strlen(mot)-1
+    int len=strlen(mot)-(n+1);
 
-    if(mot[n]==mot[length]){
+    if(mot[n]==mot[len]){
 
-        if (index+1 ==len ||index==len){
+        if (n+1 ==len ||n==len){
 
-            printf("pal")
+            
+            return printf("pal");
         }
-        palindrome(index+1,mot);
+        palindrome(n+1,mot);
     }else{
-        printf("not pal")
+        printf("not pal");
+    }
+
+
+    }
+
+
+void swap(int* a,int *b){
+
+    int temp = *a;
+    *a = *b;
+    *b = temp;
+}
+
+void bubbleSort(int n, int tab[]){
+
+
+    int i,j;
+    bool swapped;
+
+    for (i=0;i<n-1;i++){
+
+        swapped = false;
+        for(j=0;j<n-1;j++){
+
+            if(tab[j]>tab[j+1]){
+
+               swap(&tab[j],&tab[j+1]);
+                swapped =true;
+            }
+        }
+
+        if(!swapped){
+
+            break;
+        }
+
+
+    }
+}
+
+void insertionSort(int n, int tab[]){
+    int i;
+    bool swapped;
+
+    for (i=0;i<n-1;i++){
+
+        int tmp = tab[i];
+        int pos = i;
+
+        while(i>0 && tab[pos-1]>tmp){
+
+            tab[pos] = tab[pos-1];
+            pos-=1;
+            
+        }
+        tab[pos]= tmp;
+        
     }
 
+   
+
+
 
-    }
\ No newline at end of file
+}
\ No newline at end of file