---
# System prepended metadata

title: Correction TD1

---

# Correction TD1

## Partie 3

Les déroulages sont [ici](https://teams.microsoft.com/l/file/F0111F64-F773-4553-837A-92EC02C0A44F?tenantId=27a58b63-8684-40f7-b737-c9a534e65745&fileType=xlsx&objectUrl=https%3A%2F%2Funiren1.sharepoint.com%2Fsites%2FL1PortailIE-SI1%2FDocuments%20partages%2FTD-G4%2FG4-deroul-TD1.xlsx&baseUrl=https%3A%2F%2Funiren1.sharepoint.com%2Fsites%2FL1PortailIE-SI1&serviceName=teams&threadId=19:e67c39455bb54f6d840ac45ae3516339@thread.tacv2&groupId=1d37c750-97f8-45ce-b40d-057730945f76)

## Partie 4

1. Pire cas recherche (A) 
Pour n'importe quel tableau et n'importe quel élément cherché, la boucle parcourera tous les éléments du tableau jusqu'à la fin. On est toujours dans pire cas. On maximisera le nombre d'instruction exécutées si l'élément cherché est présent dans toutes les cases du tableau. 

2. Pire cas recherche (B) 
Quand l'élément à cherché n'est pas dans le tableau et qu'il est plus grand que le dernier élément du tableau. Par exemple si on cherche 8 dans un tableau {1,2,5,7}. Dans ce cas on parcourera bien toutes les cases du tableau comme dans le cas (A).

 
3. Pire cas recherche (C )
Quand l'élément cherché n'est pas dans le tableau, dans ce cas le nombre de calculs nécessaire pour trouver le nombre cherché sera le plus élevé possible.


## Partie 5

#### Exo 1
```java=
public static int rechercheA1(int cherche, int[] t){ 
    for (int i=0; i< t.length;i++){  
		 if(t[i]== cherche)	{
             return i;
        }
    } 
    return -1; 
}
```

#### Exo 2
```java=
public static int nbOccurrences(int cherche, int[] t){
    int occurence = 0;
    for (int i=0; i< t.length;i++){
        if(t[i]== cherche) {
            occurence++;
        }
    }
    return occurence;
}
```


#### Exo 3

```java=
public static int nbOccurrences(int cherche, int[] t){
    int k= 0;
    int i=0;
    while(i<t.length && t[i]<=cherche){
        if(t[i]== cherche) {
            k++
        }
        i++;
    }
    return k;
}
```
    

#### Exo 4

```java=
public static int minimum(int[] t){
    if (t.length==0)
        return ACX.erreur("Le minimum n'est pas défini sur le tableau vide.");
    else{
        int min = t[0];
        for (int i=1; i< t.length;i++){
            if(t[i]< min) {
               min = t[i];
            }
        }
        return min;
    }
}
```

#### Exo 4 bis
Comment rendre l'indice du minimum et non le minimum?

```java=
public static int minimum(int[] t){
    if (t.length==0)
        return ACX.erreur("Le minimum n'est pas défini sur le tableau vide.");
    else{
        int index_min = 0;
        for (int i=1; i< t.length;i++){
            if(t[i]< t[index_min]) {
               index_min = i;
            }
        }
        return index_min;
    }
}
```



#### Exo 5

```java=
public static boolean memeElement(int[] t){
    for (int i=0; i< t.length-1;i++){  
            for(int j=i+1;j<t.length;j++) {
                if (t[i]==t[j]) {
                   return true;
                }
            }
        } 
        return false; 
}
```
