Skip to content

Commit

Permalink
Add French translation.
Browse files Browse the repository at this point in the history
  • Loading branch information
trekhleb committed Jul 27, 2018
1 parent 2321c1e commit 97c9f6f
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 72 deletions.
82 changes: 50 additions & 32 deletions README.fr-FR.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
[![Build Status](https://travis-ci.org/trekhleb/javascript-algorithms.svg?branch=master)](https://travis-ci.org/trekhleb/javascript-algorithms)
[![codecov](https://codecov.io/gh/trekhleb/javascript-algorithms/branch/master/graph/badge.svg)](https://codecov.io/gh/trekhleb/javascript-algorithms)

Ce dépôt contient des exemples d'implémentation en JavaScript de plusieurs algorithmes et structures de données populaires.
Ce dépôt contient des exemples d'implémentation en JavaScript de plusieurs
algorithmes et structures de données populaires.

Chaque algorithme et structure de donnée possède son propre README contenant les explications détaillées et liens (incluant aussi des vidéos Youtube) pour complément d'informations.
Chaque algorithme et structure de donnée possède son propre README contenant
les explications détaillées et liens (incluant aussi des vidéos Youtube) pour
complément d'informations.

_Lisez ceci dans d'autres langues:_
[_English_](https://github.com/trekhleb/javascript-algorithms/),
Expand All @@ -14,11 +17,18 @@ _Lisez ceci dans d'autres langues:_
[_한국어_](README.ko-KR.md),
[_Polski_](README.pl-PL.md)

> Nous écrivons actuellement un livre qui expliquera clairement, en détail, les principaux algorithmes. Si vous souhaitez être notifié lorsque le livre “JavaScript Algorithms” paraîtra, [cliquez ici](https://upscri.be/402324/).
> Nous écrivons actuellement un livre qui expliquera clairement, en détail, les
principaux algorithmes. Si vous souhaitez être notifié lorsque le livre
“JavaScript Algorithms” paraîtra, [cliquez ici](https://upscri.be/402324/).

## Data Structures

Une structure de données est une manière spéciale d'organiser et de stocker des données dans un ordinateur de manière à ce que l'on puisse accéder à cette information et la modifier de manière efficiente. De manière plus spécifique, une structure de données est un ensemble composé d'une collection de valeurs, des relations entre ces valeurs ainsi que d'un ensemble de fonctions ou d'opérations pouvant être appliquées sur ces données.
Une structure de données est une manière spéciale d'organiser et de stocker
des données dans un ordinateur de manière à ce que l'on puisse accéder à
cette information et la modifier de manière efficiente. De manière plus
spécifique, une structure de données est un ensemble composé d'une collection
de valeurs, des relations entre ces valeurs ainsi que d'un ensemble de
fonctions ou d'opérations pouvant être appliquées sur ces données.

`B` - Débutant, `A` - Avancé

Expand All @@ -42,7 +52,9 @@ Une structure de données est une manière spéciale d'organiser et de stocker d

## Algorithmes

Un algorithme est une démarche non ambigüe expliquant comment résoudre une classe de problèmes. C'est un ensemble de règles décrivant de manière précise une séquence d'opérations.
Un algorithme est une démarche non ambigüe expliquant comment résoudre une
classe de problèmes. C'est un ensemble de règles décrivant de manière précise
une séquence d'opérations.

`B` - Débutant, `A` - Avancé

Expand Down Expand Up @@ -124,8 +136,10 @@ Un algorithme est une démarche non ambigüe expliquant comment résoudre une cl

### Algorithmes par Paradigme

Un paradigme algorithmique est une méthode générique ou une approche qui sous-tend la conception d'une classe
d'algorithmes. C'est une abstraction au-dessus de la notion d'algorithme, tout comme l'algorithme est une abstraction supérieure à un programme informatique.
Un paradigme algorithmique est une méthode générique ou une approche qui
sous-tend la conception d'une classe d'algorithmes. C'est une abstraction
au-dessus de la notion d'algorithme, tout comme l'algorithme est une abstraction
supérieure à un programme informatique.

* **Force Brute** - cherche parmi toutes les possibilités et retient la meilleure
* `B` [Recherche Linéaire](src/algorithms/search/linear-search)
Expand Down Expand Up @@ -201,9 +215,12 @@ npm test -- 'LinkedList'

**Tests personnalisés**

Vous pouvez manipuler les structures de données et algorithmes présents dans ce dépôt avec le fichier `./src/playground/playground.js` et écrire vos propres tests dans file `./src/playground/__test__/playground.test.js`.
Vous pouvez manipuler les structures de données et algorithmes présents dans ce
dépôt avec le fichier `./src/playground/playground.js` et écrire vos propres
tests dans file `./src/playground/__test__/playground.test.js`.

Vous pourrez alors simplement exécuter la commande suivante afin de tester si votre code fonctionne comme escompté
Vous pourrez alors simplement exécuter la commande suivante afin de tester si
votre code fonctionne comme escompté

```
npm test -- 'playground'
Expand All @@ -223,42 +240,43 @@ Comparaison de la performance d'algorithmes en notation Grand O.

Source: [Big O Cheat Sheet](http://bigocheatsheet.com/).

Voici la liste de certaines des notations Grand O les plus utilisées et de leurs comparaisons de performance suivant différentes tailles pour les données d'entrée.
Voici la liste de certaines des notations Grand O les plus utilisées et de leurs
comparaisons de performance suivant différentes tailles pour les données d'entrée.

| Notation Grand O | Opérations pour 10 éléments | Opérations pour 100 éléments | Opérations pour 1000 éléments |
| -------------- | ---------------------------- | ----------------------------- | ------------------------------- |
| **O(1)** | 1 | 1 | 1 |
| **O(log N)** | 3 | 6 | 9 |
| **O(N)** | 10 | 100 | 1000 |
| **O(N log N)** | 30 | 600 | 9000 |
| **O(N^2)** | 100 | 10000 | 1000000 |
| **O(2^N)** | 1024 | 1.26e+29 | 1.07e+301 |
| **O(N!)** | 3628800 | 9.3e+157 | 4.02e+2567 |
| ---------------- | ---------------------------- | ----------------------------- | ------------------------------- |
| **O(1)** | 1 | 1 | 1 |
| **O(log N)** | 3 | 6 | 9 |
| **O(N)** | 10 | 100 | 1000 |
| **O(N log N)** | 30 | 600 | 9000 |
| **O(N^2)** | 100 | 10000 | 1000000 |
| **O(2^N)** | 1024 | 1.26e+29 | 1.07e+301 |
| **O(N!)** | 3628800 | 9.3e+157 | 4.02e+2567 |

### Complexité des Opérations suivant les Structures de Données

| Structure de donnée | Accès | Recherche | Insertion | Suppression | Commentaires |
| ------------------------------- | :-------: | :-------: | :-------: | :----------: | :-------- |
| **Liste** | 1 | n | n | n | |
| **Pile** | n | n | 1 | 1 | |
| **Queue** | n | n | 1 | 1 | |
| **Liste Liée** | n | n | 1 | 1 | |
| ------------------------------- | :-------: | :-------: | :-------: | :----------: | :------------ |
| **Liste** | 1 | n | n | n | |
| **Pile** | n | n | 1 | 1 | |
| **Queue** | n | n | 1 | 1 | |
| **Liste Liée** | n | n | 1 | 1 | |
| **Table de Hachage** | - | n | n | n | Dans le cas des fonctions de hachage parfaites, les couts seraient de O(1) |
| **Arbre de Recherche Binaire** | n | n | n | n | Dans le cas des arbre équilibrés, les coûts seraient de O(log(n)) |
| **Arbre B** | log(n) | log(n) | log(n) | log(n) | |
| **Arbre Red-Black** | log(n) | log(n) | log(n) | log(n) | |
| **Arbre AVL** | log(n) | log(n) | log(n) | log(n) | |
| **Arbre B** | log(n) | log(n) | log(n) | log(n) | |
| **Arbre Red-Black** | log(n) | log(n) | log(n) | log(n) | |
| **Arbre AVL** | log(n) | log(n) | log(n) | log(n) | |
| **Filtre de Bloom** | - | 1 | 1 | - | Les faux positifs sont possibles lors de la recherche |

### Complexité des Algorithmes de Tri de Liste

| Nom | Meilleur | Moyenne | Pire | Mémoire | Stable | Commentaires |
| ----------------------- | :-------------: | :--------------------: | :-----------------: | :-------: | :-------: | :-------- |
| **Tri Bulle** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Oui | |
| **Tri Insertion** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Oui | |
| **Tri Sélection** | n<sup>2</sup> | n<sup>2</sup> | n<sup>2</sup> | 1 | Non | |
| **Tri par Tas** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | 1 | Non | |
| **Merge sort** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | n | Oui | |
| ----------------------- | :-------------: | :--------------------: | :-----------------: | :-------: | :-------: | :------------ |
| **Tri Bulle** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Oui | |
| **Tri Insertion** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Oui | |
| **Tri Sélection** | n<sup>2</sup> | n<sup>2</sup> | n<sup>2</sup> | 1 | Non | |
| **Tri par Tas** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | 1 | Non | |
| **Merge sort** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | n | Oui | |
| **Tri Rapide** | n&nbsp;log(n) | n&nbsp;log(n) | n<sup>2</sup> | log(n) | Non | le Tri Rapide est généralement effectué *in-place* avec une pile de taille O(log(n)) |
| **Tri Shell** | n&nbsp;log(n) | dépend du gap séquence | n&nbsp;(log(n))<sup>2</sup> | 1 | Non | |
| **Tri Comptage** | n + r | n + r | n + r | n + r | Oui | r - le plus grand nombre dans la liste |
Expand Down
23 changes: 12 additions & 11 deletions README.ko-KR.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ _Read this in other languages:_
[_English_](https://github.com/trekhleb/javascript-algorithms/),
[_简体中文_](README.zh-CN.md),
[_繁體中文_](README.zh-TW.md),
[_Polski_](README.pl-PL.md)
[_Polski_](README.pl-PL.md),
[_Français_](README.fr-FR.md)

> 우리는 주요 알고리즘에 대해 더 자세한 설명을 담은 책을 제작 중입니다.
만약 “JavaScript Algorithms” 책이 언제 출시되는지 알고 싶다면
Expand Down Expand Up @@ -258,14 +259,14 @@ Source: [Big O Cheat Sheet](http://bigocheatsheet.com/).

### 정렬 알고리즘 복잡도

| 이름 | 최적 | 평균 | 최악 | 메모리 | 동일값 순서유지 | 비고 |
| --------------------- | :-------------: | :-----------------: | :-----------------: | :-------: | :-------: | :-------- |
| **거품 정렬** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Yes | |
| **삽입 정렬** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Yes | |
| **선택 정렬** | n<sup>2</sup> | n<sup>2</sup> | n<sup>2</sup> | 1 | No | |
| **힙 정렬** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | 1 | No | |
| **병합 정렬** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | n | Yes | |
| **퀵 정렬** | n&nbsp;log(n) | n&nbsp;log(n) | n<sup>2</sup> | log(n) | No | 퀵 정렬은 보통 제자리(in-place)로 O(log(n)) 스택공간으로 수행됩니다. |
| 이름 | 최적 | 평균 | 최악 | 메모리 | 동일값 순서유지 | 비고 |
| --------------------- | :-------------: | :-----------------: | :-----------------: | :-------: | :--------------: | :-------- |
| **거품 정렬** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Yes | |
| **삽입 정렬** | n | n<sup>2</sup> | n<sup>2</sup> | 1 | Yes | |
| **선택 정렬** | n<sup>2</sup> | n<sup>2</sup> | n<sup>2</sup> | 1 | No | |
| **힙 정렬** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | 1 | No | |
| **병합 정렬** | n&nbsp;log(n) | n&nbsp;log(n) | n&nbsp;log(n) | n | Yes | |
| **퀵 정렬** | n&nbsp;log(n) | n&nbsp;log(n) | n<sup>2</sup> | log(n) | No | 퀵 정렬은 보통 제자리(in-place)로 O(log(n)) 스택공간으로 수행됩니다. |
| **셸 정렬** | n&nbsp;log(n) | 간격 순서에 영향을 받습니다. | n&nbsp;(log(n))<sup>2</sup> | 1 | No | |
| **계수 정렬** | n + r | n + r | n + r | n + r | Yes | r - 배열내 가장 큰 수 |
| **기수 정렬** | n * k | n * k | n * k | n + k | Yes | k - 키값의 최대 길이 |
| **계수 정렬** | n + r | n + r | n + r | n + r | Yes | r - 배열내 가장 큰 수 |
| **기수 정렬** | n * k | n * k | n * k | n + k | Yes | k - 키값의 최대 길이 |
Loading

0 comments on commit 97c9f6f

Please sign in to comment.