Vous êtes sur la page 1sur 8

Devoir December 20, 2018

Université Mohammed Premier

Ecole Nationale des Sciences Appliquées

Al Hoceima

Devoir libre

Réalisé par : Encadré par :


Mansouri Houda Mr. Boudaa Tarik

Page1|8
Devoir December 20, 2018

Réponse de question 13:


Pour trouver le kth plus petit élément du tableau : nous pouvons
simplement trier le tableau par ordre croissant (je utilise la méthode sort) puis
trouver le kth nombre positionné
Code source dans package :com.question13

Réponse de question 14 :
Pour Trouver des éléments communs dans trois tableaux triés :
L’idée générale : on va rechercher l'intersection de deux tableaux. Puis
on stocke l'intersection dans un autre tableau (Tableau temporaire),
Apres on fait même démarche pour la troisième tableau et le tableau
temporaire
Mais on peut simplement trouver les éléments communs sans
avoir une espace supplémentaire et avec une seule boucle.
Code source dans package :com.question14

Réponse de question 15 :
Pour faire pivoter une matrice sur place à 90 degrés :
Il faut êtres une matrice carrée (même nombre de lignes et de colonnes),
sinon la solution en place n'est pas possible

Donc Pour faire pivoter une matrice à 90 degrés, on va


commencer couche par couche. Faire pivoter la première couche
extérieure de 90 degrés, Faire pivoter la deuxième couche intérieure de
90 degrés, Faire pivoter la troisième couche intérieure de 90 degrés,
etc…
Code source dans package :com.question15

Réponse de question 16 :

Pour résoudre cette question, je veux l’expliquer grâce a un


algorithme avec un petit exemple :

Page2|8
Devoir December 20, 2018

Exemple :

1 5 3 6
Nombre de ligne 2 6 4 8
8 9 6 11
3 8 10 7

Nombre colonne-1

le nombre de diagonales = Nombre de ligne + Nombre de Colonne - 1,


comme illustré dans le diagramme ci-dessous.

Code source dans package :com.question16

Réponse de question 17 :

Puisque C’une matrice triée par rangée et par colonne (une


matrice n x n, où chaque ligne et colonne est triés par ordre croissant
Cela signifie que pour chaque ligne, le dernier élément est le plus grand
et pour chaque colonne, le dernier élément est encore le plus
grand. Donc pour un nombre donné, tous les nombres à sa droite et
tous les nombres au bas de celui-ci seront plus grands.
Nous pouvons commencer la recherche en haut à droite.

Tout d'abord, continuez à gauche jusqu'à ce que nous trouvions le


nombre exact ou jusqu'à ce que nous trouvions un nombre plus petit. Si
nous trouvons un nombre plus petit, nous descendons dans la
matrice. Ensuite, nous déplaçons à gauche, et ainsi de suite, jusqu'à ce
que nous trouvions le nombre

Réponse de question 18. :


On compare les éléments de tableau1 avec les éléments
de tableau2 (un par un), si le i élément de tableau1 est inférieur
à j élément de tableau2, stockez tableau1 [i] dans un nouveau
tableau et augmentez l'indice i sinon stockez tableau2 [j] dans
un nouveau tableau et augmenter l'indice j .

Page3|8
Devoir December 20, 2018

• Une fois que l’un des tableaux est entièrement traversé, arrêtez
la comparaison et copiez les éléments restants de Tableau1 ou
tableau2 dans le nouveau tableau.
Code source dans package :com.question18

Réponse de question 19. :

Code source dans package :com.question19

Réponse de question 20 :

La transposition d’une matrice donnée se fait par les modifications


des lignes en colonnes et les colonnes en lignes.

Donc pour avoir une matrice transposé ona


Lignes = Total de la colonne d'origine.
Colonne = Nombre total de lignes de la matrice d'origine.
MatriceTransposé[ col ] [ ligne ] = Matrice[ ligne ] [ col ].

Réponse de question 21 :

On a une matrice de taille nxn , le but est de trouver le point


selle de matrice

Quel est le point de selle de Matrice?


L'élément est dit point de selle de Matrice s'il est à la fois un minimum de
sa ligne et un maximum de sa colonne ou inversement.

On suit les étapes suivantes :

Premier étape :on va parcourir la matrice ligne par ligne et pour chaque
ligne, On cherche l’élément minimum dans cette ligne.
Supposons que vous trouviez l’élément minimum à l’indice j.
Puis on Vérifie l’élément maximum sur la même colonne j.

Donc Si l’élément minimum de la ligne et le maximum de la colonne j


sont identiques, alors cet élément est le point de selle de la matrice.
Si l'élément minimum dans la ligne et le maximum dans la colonne j ne

Page4|8
Devoir December 20, 2018

sont pas identiques, cette ligne n'a pas de point d'équilibre et vérifie la
ligne suivante.
On suit les étapes ci-dessus pour toutes les lignes.
Code source dans package :com.question21(test)

Réponse de question 22 :

D’âpres un tableau qui contient de nombre positives et négatifs, il


faut l’organiser de manière alternative c’est à dire Si on commence par
nombre positif alors il va suivre d’un négatif, et ver- versa, en
conservant l'ordre d'apparition. Les nombres positifs et négatifs ne doit
pas nécessairement égaux S'il y a plus de nombres positifs, ils
apparaissent à la fin du tableau. Même chose pour les nombre négatifs.
Sachant que L'ordre des éléments en sortie n'a pas d'importance

Donc meilleur solution pour faire cela on utilise la technique de tri


rapide.
▪ Prenez l'élément de pivot comme 0 et faites le premier tour
de Tri rapide.
▪ Après l'étape ci-dessus, vous aurez tous les éléments
négatifs à gauche et tous les éléments positifs à droite.
▪ Ensuite, chaque élément alternatif dans la moitié gauche
(éléments négatifs) avec les éléments dans la droite
(éléments positifs)
Code source dans package :com.question22

Réponse de question 23 :On utilise le hachage

L'idée de cette méthode est de parcourir le tableau puis calculer


pour chaque élément tab [i] la somme des éléments de 0 à i (cette
opération peut simplement être réalisée sous la forme somme sum + =
atab [i]). Si la somme actuelle a déjà été existé, il existe un tableau à
somme nulle. Le hachage est utilisé pour stocker les valeurs de somme,
afin que nous puissions rapidement stocker la somme et savoir si la
somme actuelle est existé avant ou non.

Page5|8
Devoir December 20, 2018

Réponse de question 24 :

On ne peut pas simplement supprimer un élément de l’index donné


dans un tableau, il faut d’abord déplacer tous les éléments qui se
trouvent après l’élément qu’on veut supprimer.

Réponse de question 25 :

Le tri rapide (quicksort) fonctionne suivant la méthode divisé pour


régner. On partage le tableau en deux, la partie gauche et la partie
droite, et on trie chacune des deux parties séparément. On obtient alors
un tableau trié.
Code source dans package :com.question25

Réponse de question 26 :

Une fois le tableau crée, on ne peut pas modifier de taille par la


suite si non il faut utiliser ArrayList c’est plus adapté

Réponse de question 27 :

Pour LinkedList mémorise ses éléments avec une liste


doublement chaînée

Pour ArrayList mémorise ses éléments avec un tableau de


redimensionnement dynamique (taille n’est pas fixe)

Réponse de question 28 :

Pour boucler ArrayList en Java, nous examinons différentes


façons de parcourir ArrayList en Java.

1-on utilise For classique

A partir de Java 8, nous pouvons utiliser la méthode forEach.

Page6|8
Devoir December 20, 2018

Réponse de question 29 :

La différence entre vector et ArrayList est que Vector est


synchronisé. Cela signifie que si un thread fonctionne sur Vector, aucun
autre thread ne peut en saisir le contenu. Contrairement à ArrayList, un
seul thread peut effectuer une opération sur un vecteur à la fois.

Réponse de question 30 :

La différence entre Array et en java d’éléments

D ’abord , La taille du tableau est statique et correspond à une


structure de données de longueur fixe. Il est impossible de modifier la
longueur après avoir créé l'objet Tableau.
ArrayList est dynamique en taille. Chaque objet ArrayList a une capacité
de variable d'instance qui indique la taille de ArrayList. Lorsque des
éléments sont ajoutés à une liste de tableaux, sa capacité augmente
automatiquement. Ainsi ArrayList ne peut pas contenir de types de
données primitifs (comme int, float, double), mais uniquement Object,
tandis que Array peut contenir à la fois des types de données primitifs et
des objets.

Réponse de question 31:

Il existe plusieurs façons pour rechercher des éléments doublons


dans un tableau :

L'un des méthodes les plus courants pour trouver les doublons
consiste à compare chaque élément du tableau à tous les autres
éléments

Pour ce faire, nous utilisons deux boucles, une boucle interne et une
boucle externe. Ainsi En ce qui concerne l’autre, on va utiliser la table
de hachage. Tout ce que vous avez à faire est de parcourir le tableau en
utilisant la boucle for et d'insérer chaque élément et son nombre dans la
table de hachage

Page7|8
Devoir December 20, 2018

Réponse de question 32 :

Pour copier un tableau dans un autre tableau, on a la méthode classique


qui permet de copier manuellement les éléments un par un, mais ce
n’est pas la façon la plus efficace, On peut directement copier un tableau
dans un autre grâce a une méthode qui existe dans java Arrays.copyOf
(). Ainsi il existe une méthode statique arraycopy permet de copier un
tableau dans un autre

System.arraycopy(src,srcPos,dest,destPos,length)

fin

Page8|8

Vous aimerez peut-être aussi