• Aucun résultat trouvé

ULCO - L2 Mathématiques DS Algorithmique - 1h00

N/A
N/A
Protected

Academic year: 2022

Partager "ULCO - L2 Mathématiques DS Algorithmique - 1h00"

Copied!
2
0
0

Texte intégral

(1)

ULCO - L2 Mathématiques DS Algorithmique - 1h00

6 novembre 2018

Exercice 1 : Tri

Le but de cet exercice est de trier un tableau de 100 entiers de telle sorte que :

— les entiers pairs du tableau soient triés dans l’ordre croissant et soient consécutifs sur les indices les plus petits du tableau (= "éléments de gauche") ;

— les entiers impairs soient triés dans l’ordre décroissant et soient consécutifs sur les indices les plus grands du tableau (= "éléments de droite").

Exemple d’exécution :

Tableau de 10 elements non trie : 2 8 7 6 1 0 9 3 5 4 Tableau trie suivant notre methode : 0 2 4 6 8 9 7 5 3 1

Autre exemple d’exécution :

Tableau de 9 elements non trie : 2 8 2 6 4 0 3 5 4 Tableau trie suivant notre methode : 0 2 2 4 4 6 8 5 3

Pour réaliser ce tri, vous allez :

1. sur le modèle du tri rapide, prendre le dernier élément du tableau comme "pivot" et mettre tous les éléments pairs à la "gauche" de ce pivot et tous les éléments impairs à sa "droite" ;

2. vous testerez si l’élément "pivot" est pair ou impair ce qui permettra d’avoir l’indice "deb_impair"

correspondant au premier élément impair du tableau ;

3. vous trierez alors les éléments pairs dans l’ordre croissant grâce à un tri par insertion ; 4. vous trierez les éléments impairs dans l’ordre décroissant grâce à un tri par fusion.

Bien entendu tous les tris sont à adapter, donc à réécrire entièrement.

Exercice 2 : Les pointeurs

Vous remplirez le tableau ci-après en donnant les valeurs des variables pour chaque instruction du programme mise dans la 1ère colonne.

1

(2)

NOM :

PRENOM :

code a b *p1 *p2 t[0] t[1] t[2] t[3]

int main(void) ? ? ? ? ? ? ? ?

{ ? ? ? ? ? ? ? ?

int a, b, *t,*p1, *p2 ; ? ? ? ? ? ? ? ?

t = new int[4] ; ? ? ? ? ? ? ? ?

a = 2 ; b = 3 ; t[0] = 4 ; p1 = t ;

*p1 = a ;

*(t+3) = *t+3 ; p2 = &b ;

*p2 = *(p1++) ;

*p1 = a*3 ;

*(t+2) = *p2++ ; a = *p1 * *p2 ; return 0 ; }

2

Références

Documents relatifs

Une autre méthode pour échanger les valeurs des variables A et B, est basée sur l’introduction d’une variable supplémentaire C et effectuer les affectations suivantes : CA

Le pas est donc

- les périmètres des huit triangles sont identiques. Les triangles ainsi obtenus sont appelés magiques. Trouver trois tableaux 3 x 3 distincts de sorte que l’aire de l’un au moins

M'appeler pour me montrer tableur et grapheur à la calculatrice quand vous pensez avoir terminé. Capturé sur

Quelle valeur faut-il saisir en entrée pour que la valeur affichée par cet algorithme soit 13

Écrire l’équation de la réaction d’oxydation de l’alcool A, sachant que les ions permanganate sont réduits en ions manganèse (II) Mn 2+ et en utilisant les

Répondre sur votre copie en précisant l'espace numéroté dont il s'agit (préciser les calculs pour l'espace 12). La solution obtenue contiendra des ions cuivre Cu 2+ et des

Cette décision de se ____________ en deux blocs était d’ailleurs prévisible depuis quelques mois. Il paraît que la sagesse vient