Examens data and structure algorithmique, Exams of Data Structures and Algorithms

Examens de algorithme université yahaia fares medea

Typology: Exams

2022/2023

Available from 11/26/2024

boukhalfa-cherif
boukhalfa-cherif 🇩🇿

1 document

1 / 2

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Page 1/2
Université de Ghardaia 2021-2022
Département des Mathématiques et dInformatique 31/01/2022
2ème Année Informatique (Semestre 3) Durée : 01H 30mn
Examen Final
Algorithmique et Structures de Données 3
Les documents et téléphones portables sont interdits.
Exercice 1 : (3,50 points)
Supposons que nous implémentons une table de symboles (avec int keys et double values) en utilisant
un arbre binaire de recherche (Binary Search tree) avec le type de données suivant :
public class BinarySearchTree {
private Node root; // root of BST
private int n; // number of nodes in BST
private static class Node {
private Node left; // left subtree
private Node right; // right subtree
private int key; // symbol table key (clé)
private double value; // symbol table value (valeur)
}
...
}
En utilisant un modèle de coût mémoire 64-bits :
1. Calculer le nombre d’octets utilisé par un objet « Node ».
2. Calculer le nombre d’octets utilisé par un objet « BinarySearchTree» en fonction du nombre de
pairs clé-valeur. Comptez toute la mémoire référencée, y compris les clés et les valeurs. Utilisez
la notation tilde pour simplifier votre réponse.
Exercice 2 : (08,50 points)
Soit deux listes chaînées ( L1 et L2) de nombres réels, les valeurs de chacune de ces listes sont
supposées triées par ordre croissant.
Écrire un algorithme (itératif) qui fusionne ces deux listes en une troisième liste (L3). Cette
troisième liste devra contenir exactement les valeurs des listes d’origine, et ces valeurs devront elles
aussi être triées par ordre croissant.
N.B. :
La liste L3 doit utiliser les maillons des listes L1 et L2 (Elle ne doit pas créer de nouveaux maillons
pour les valeurs de L1 et L2).
Votre approche doit faire un seul parcours des deux listes L1 et L2.
pf2

Partial preview of the text

Download Examens data and structure algorithmique and more Exams Data Structures and Algorithms in PDF only on Docsity!

Page 1/

Université de Ghardaia 2021- Département des Mathématiques et d’Informatique 31/01/ 2 ème^ Année Informatique (Semestre 3) Durée : 01H 30mn

Examen Final

Algorithmique et Structures de Données 3

 Les documents et téléphones portables sont interdits.

Exercice 1 : (3,50 points)

Supposons que nous implémentons une table de symboles (avec int keys et double values) en utilisant un arbre binaire de recherche (Binary Search tree) avec le type de données suivant :

public class BinarySearchTree { private Node root; // root of BST private int n; // number of nodes in BST

private static class Node { private Node left; // left subtree private Node right; // right subtree private int key; // symbol table key (clé) private double value; // symbol table value (valeur) } ... }

En utilisant un modèle de coût mémoire 64-bits :

  1. Calculer le nombre d’octets utilisé par un objet « Node ».
  2. Calculer le nombre d’octets utilisé par un objet « BinarySearchTree» en fonction du nombre de pairs clé-valeur. Comptez toute la mémoire référencée, y compris les clés et les valeurs. Utilisez la notation tilde pour simplifier votre réponse.

Exercice 2 : (08,50 points)

Soit deux listes chaînées ( L1 et L2) de nombres réels, les valeurs de chacune de ces listes sont

supposées triées par ordre croissant.

Écrire un algorithme (itératif) qui fusionne ces deux listes en une troisième liste (L3). Cette

troisième liste devra contenir exactement les valeurs des listes d’origine, et ces valeurs devront elles

aussi être triées par ordre croissant.

N.B. :

 La liste L3 doit utiliser les maillons des listes L1 et L2 (Elle ne doit pas créer de nouveaux maillons pour les valeurs de L1 et L2).  Votre approche doit faire un seul parcours des deux listes L1 et L2.

Page 2/

Par exemple, la fusion de

L

L

Donnera

L

Exercice 3 : (8.00 points)

  1. Écrire un algorithme récursif. est un tableau de nombres réels de taille , est la valeur recherchée, et sup sont des index sur le tableau. Dans l'appel initial à votre algorithme, et.
  2. Construire une relation de récurrence pour le temps d'exécution de votre algorithme récursif .
  3. Calculer la complexité de dans le cas où , en utilisant la notation grand-.

Bon courage

1.0 1.4 2.1 5.2 7.2 8.1 9.

2.0 2.2 2.5 2.9 3.9 4.8 5.2 6.0 7.

1.0 1.4 2.0 2.1 2.2 2.5 2.9 3.9 4.8 5.2 5.2 6.0 7.2 7.7 8.1 9.