Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: trekhleb/javascript-algorithms
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: nisarhassan12/javascript-algorithms
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
  • 1 commit
  • 10 files changed
  • 1 contributor

Commits on Mar 19, 2020

  1. Configures Gitpod.

    nisarhassan12 committed Mar 19, 2020
    Copy the full SHA
    354ac26 View commit details
Showing with 99 additions and 61 deletions.
  1. +2 −0 .gitpod.yml
  2. +8 −4 README.es-ES.md
  3. +24 −20 README.fr-FR.md
  4. +6 −2 README.ja-JP.md
  5. +9 −5 README.ko-KR.md
  6. +9 −5 README.md
  7. +26 −22 README.pl-PL.md
  8. +7 −3 README.pt-BR.md
  9. +4 −0 README.zh-CN.md
  10. +4 −0 README.zh-TW.md
2 changes: 2 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
tasks:
- init: npm install
12 changes: 8 additions & 4 deletions README.es-ES.md
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
Este repositorio contiene ejemplos basados en JavaScript de muchos
algoritmos y estructuras de datos populares.

Cada algoritmo y estructura de datos tiene su propio LÉAME con explicaciones relacionadas y
Cada algoritmo y estructura de datos tiene su propio LÉAME con explicaciones relacionadas y
enlaces para lecturas adicionales (incluyendo algunas a vídeos de YouTube).

_Léelo en otros idiomas:_
@@ -51,7 +51,7 @@ los datos.

## Algoritmos

Un algoritmo es una especificación inequívoca de cómo resolver una clase de problemas. Es un conjunto de reglas que
Un algoritmo es una especificación inequívoca de cómo resolver una clase de problemas. Es un conjunto de reglas que
definen con precisión una secuencia de operaciones.

`P` - Principiante, `A` - Avanzado
@@ -200,6 +200,10 @@ Es una abstracción superior a la noción de algoritmo, del mismo modo que un al

## Cómo usar este repositorio

Puede configurar este repositorio localmente siguiendo los pasos a continuación o usar [gitpod.io](https://gitpod.io) un VS-Code en línea gratuito como IDE, con un solo clic abrirá un espacio de trabajo listo para codificar con todas las dependencias preinstaladas para que pueda comenzar a piratear el proyecto sin perder un tiempo precioso en la configuración del desarrollo.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/trekhleb/javascript-algorithms)

**Instalar las dependencias**

```
@@ -228,7 +232,7 @@ npm test -- 'LinkedList'

**Campo de juegos**

Puede jugar con estructuras de datos y algoritmos en el archivo `./src/playground/playground.js` y escribir
Puede jugar con estructuras de datos y algoritmos en el archivo `./src/playground/playground.js` y escribir
pruebas para ello en `./src/playground/__test__/playground.test.js`.

A continuación, simplemente ejecute el siguiente comando para comprobar si el código funciona como se espera:
@@ -251,7 +255,7 @@ Orden de crecimiento de los algoritmos especificados en la notación O grande.

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

A continuación se muestra la lista de algunas de las notaciones de Big O más utilizadas y sus comparaciones de rendimiento
A continuación se muestra la lista de algunas de las notaciones de Big O más utilizadas y sus comparaciones de rendimiento
frente a diferentes tamaños de los datos de entrada.

| Notación O grande | Cálculos para 10 elementos | Cálculos para 100 elementos | Cálculos para 1000 elementos |
44 changes: 24 additions & 20 deletions README.fr-FR.md
Original file line number Diff line number Diff line change
@@ -3,11 +3,11 @@
[![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
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
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:_
@@ -22,11 +22,11 @@ _Lisez ceci dans d'autres langues:_

## 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
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é
@@ -51,8 +51,8 @@ fonctions ou d'opérations pouvant être appliquées sur ces données.

## 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
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é
@@ -61,7 +61,7 @@ une séquence d'opérations.

* **Math**
* `B` [Manipulation de Bit](src/algorithms/math/bits) - définir/obtenir/mettre à jour/effacer les bits, multiplication/division par deux, négativiser etc.
* `B` [Factorielle](src/algorithms/math/factorial)
* `B` [Factorielle](src/algorithms/math/factorial)
* `B` [Nombre de Fibonacci](src/algorithms/math/fibonacci)
* `B` [Test de Primalité](src/algorithms/math/primality-test) (méthode du test de division)
* `B` [Algorithme d'Euclide](src/algorithms/math/euclidean-algorithm) - calcule le Plus Grand Commun Diviseur (PGCD)
@@ -128,16 +128,16 @@ une séquence d'opérations.
* **Non catégorisé**
* `B` [Tours de Hanoi](src/algorithms/uncategorized/hanoi-tower)
* `B` [Rotation de Matrice Carrée](src/algorithms/uncategorized/square-matrix-rotation) - algorithme *in place*
* `B` [Jump Game](src/algorithms/uncategorized/jump-game) - retour sur trace, programmation dynamique (haut-bas + bas-haut) et exemples gourmands
* `B` [Chemins Uniques](src/algorithms/uncategorized/unique-paths) - retour sur trace, programmation dynamique (haut-bas + bas-haut) et exemples basés sur le Triangle de Pascal
* `B` [Jump Game](src/algorithms/uncategorized/jump-game) - retour sur trace, programmation dynamique (haut-bas + bas-haut) et exemples gourmands
* `B` [Chemins Uniques](src/algorithms/uncategorized/unique-paths) - retour sur trace, programmation dynamique (haut-bas + bas-haut) et exemples basés sur le Triangle de Pascal
* `A` [Problème des N-Dames](src/algorithms/uncategorized/n-queens)
* `A` [Problème du Cavalier](src/algorithms/uncategorized/knight-tour)

### 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
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
@@ -189,6 +189,10 @@ chemin différent pour tester d'autres solutions. Normalement, la traversée en

## Comment utiliser ce dépôt

Vous pouvez soit configurer ce référentiel localement en suivant les étapes ci-dessous, soit utiliser [gitpod.io](https://gitpod.io), un code VS en ligne gratuit comme l'IDE. Un simple clic permet de lancer un espace de travail prêt à coder. avec toutes les dépendances pré-installées de sorte que vous puissiez commencer à bidouiller avec le projet sans perdre un temps précieux sur la configuration du développement.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/trekhleb/javascript-algorithms)

**Installer toutes les dépendances**
```
npm install
@@ -214,11 +218,11 @@ 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
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
Vous pourrez alors simplement exécuter la commande suivante afin de tester si
votre code fonctionne comme escompté

```
@@ -239,7 +243,7 @@ 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
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 |
8 changes: 6 additions & 2 deletions README.ja-JP.md
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ _Read this in other languages:_

* **数学**
* `B` [ビット操作](src/algorithms/math/bits) - set/get/update/clear bits, 2つの乗算/除算, 否定的にする. 等
* `B` [因果関係](src/algorithms/math/factorial)
* `B` [因果関係](src/algorithms/math/factorial)
* `B` [フィボナッチ数](src/algorithms/math/fibonacci) - クラシックとクローズドフォームのバージョン
* `B` [素数性テスト](src/algorithms/math/primality-test) (trial division 方法)
* `B` [ユークリッドアルゴリズム](src/algorithms/math/euclidean-algorithm) - 最大公約数を計算する (GCD)
@@ -115,7 +115,7 @@ _Read this in other languages:_
* **グラフ**
* `B` [深度優先検索](src/algorithms/graph/depth-first-search) (DFS)
* `B` [幅優先検索](src/algorithms/graph/breadth-first-search) (BFS)
* `B` [Kruskalのアルゴリズム](src/algorithms/graph/kruskal) - 重み付き無向グラフの最小スパニングツリー(MST)の発見
* `B` [Kruskalのアルゴリズム](src/algorithms/graph/kruskal) - 重み付き無向グラフの最小スパニングツリー(MST)の発見
* `A` [Dijkstraアルゴリズム](src/algorithms/graph/dijkstra) - 単一の頂点からすべてのグラフ頂点への最短経路を見つける
* `A` [Bellman-Fordアルゴリズム](src/algorithms/graph/bellman-ford) - 単一の頂点からすべてのグラフ頂点への最短経路を見つける
* `A` [Floyd-Warshallアルゴリズム](src/algorithms/graph/floyd-warshall) - すべての頂点ペア間の最短経路を見つける
@@ -201,6 +201,10 @@ _Read this in other languages:_

## このリポジトリの使い方

以下の手順に従ってこのリポジトリをローカルでセットアップするか、[gitpod.io](https://gitpod.io)IDEのような無料のオンラインVS-Codeを使用して、シングルクリックですぐにコーディングできるワークスペースを起動できます。 すべての依存関係が事前にインストールされているため、開発セットアップに貴重な時間を費やすことなく、プロジェクトのハッキングを開始できます。

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/trekhleb/javascript-algorithms)

**すべての依存関係をインストールする**
```
npm install
14 changes: 9 additions & 5 deletions README.ko-KR.md
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ _Read this in other languages:_

자료 구조는 데이터를 특정 방식으로 구성하고 저장함으로써 더 효율적으로
접근하고 수정할 수 있게 해줍니다. 간단히 말해, 자료 구조는 데이터 값들,
데이터 간의 관계, 그리고 데이터를 다룰 수 있는 함수와 작업의 모임입니다.
데이터 간의 관계, 그리고 데이터를 다룰 수 있는 함수와 작업의 모임입니다.


`B` - 입문자, `A` - 숙련자
@@ -47,16 +47,16 @@ _Read this in other languages:_

## 알고리즘

알고리즘은 어떤 종류의 문제를 풀 수 있는 정확한 방법이며,
일련의 작업을 정확하게 정의해 놓은 규칙들입니다.
알고리즘은 어떤 종류의 문제를 풀 수 있는 정확한 방법이며,
일련의 작업을 정확하게 정의해 놓은 규칙들입니다.

`B` - 입문자, `A` - 숙련자

### 주제별 알고리즘

* **Math**
* `B` [Bit Manipulation](src/algorithms/math/bits) - set/get/update/clear bits, 2의 곱 / 나누기, 음수로 만들기 etc.
* `B` [팩토리얼](src/algorithms/math/factorial)
* `B` [팩토리얼](src/algorithms/math/factorial)
* `B` [피보나치 수](src/algorithms/math/fibonacci)
* `B` [소수 판별](src/algorithms/math/primality-test) (trial division 방식)
* `B` [유클리드 호제법](src/algorithms/math/euclidean-algorithm) - 최대공약수 (GCD)
@@ -123,7 +123,7 @@ _Read this in other languages:_
* **Uncategorized**
* `B` [하노이 탑](src/algorithms/uncategorized/hanoi-tower)
* `B` [정방 행렬 회전](src/algorithms/uncategorized/square-matrix-rotation) - 제자리(in-place) 알고리즘
* `B` [점프 게임](src/algorithms/uncategorized/jump-game) - 백트래킹, 동적계획법 (top-down + bottom-up), 탐욕 알고리즘 예제
* `B` [점프 게임](src/algorithms/uncategorized/jump-game) - 백트래킹, 동적계획법 (top-down + bottom-up), 탐욕 알고리즘 예제
* `B` [Unique 경로](src/algorithms/uncategorized/unique-paths) - 백트래킹, 동적계획법, 파스칼 삼각형에 기반한 예제
* `B` [빗물 담기 문제](src/algorithms/uncategorized/rain-terraces) - trapping rain water problem (동적계획법, 브루트포스 버전)
* `A` [N-Queens 문제](src/algorithms/uncategorized/n-queens)
@@ -183,6 +183,10 @@ _Read this in other languages:_

## 이 저장소의 사용법

아래 단계에 따라이 리포지토리를 로컬로 설정하거나 IDE와 같은 무료 온라인 VS 코드를 [gitpod.io](https://gitpod.io) 사용할 수 있습니다. 모든 의존성이 사전 설치되어 있으므로 개발 설정에 귀중한 시간을 낭비하지 않고 프로젝트를 해킹 할 수 있습니다.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/trekhleb/javascript-algorithms)

**모든 종속 모듈들 설치**
```
npm install
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ _Read this in other languages:_
[_Español_](README.es-ES.md),
[_Português_](README.pt-BR.md)

*☝ Note that this project is meant to be used for learning and researching purposes
*☝ Note that this project is meant to be used for learning and researching purposes
only and it is **not** meant to be used for production.*

## Data Structures
@@ -61,7 +61,7 @@ a set of rules that precisely define a sequence of operations.

* **Math**
* `B` [Bit Manipulation](src/algorithms/math/bits) - set/get/update/clear bits, multiplication/division by two, make negative etc.
* `B` [Factorial](src/algorithms/math/factorial)
* `B` [Factorial](src/algorithms/math/factorial)
* `B` [Fibonacci Number](src/algorithms/math/fibonacci) - classic and closed-form versions
* `B` [Primality Test](src/algorithms/math/primality-test) (trial division method)
* `B` [Euclidean Algorithm](src/algorithms/math/euclidean-algorithm) - calculate the Greatest Common Divisor (GCD)
@@ -75,7 +75,7 @@ a set of rules that precisely define a sequence of operations.
* `A` [Integer Partition](src/algorithms/math/integer-partition)
* `A` [Square Root](src/algorithms/math/square-root) - Newton's method
* `A` [Liu Hui π Algorithm](src/algorithms/math/liu-hui) - approximate π calculations based on N-gons
* `A` [Discrete Fourier Transform](src/algorithms/math/fourier-transform) - decompose a function of time (a signal) into the frequencies that make it up
* `A` [Discrete Fourier Transform](src/algorithms/math/fourier-transform) - decompose a function of time (a signal) into the frequencies that make it up
* **Sets**
* `B` [Cartesian Product](src/algorithms/sets/cartesian-product) - product of multiple sets
* `B` [Fisher–Yates Shuffle](src/algorithms/sets/fisher-yates) - random permutation of a finite sequence
@@ -140,8 +140,8 @@ a set of rules that precisely define a sequence of operations.
* **Uncategorized**
* `B` [Tower of Hanoi](src/algorithms/uncategorized/hanoi-tower)
* `B` [Square Matrix Rotation](src/algorithms/uncategorized/square-matrix-rotation) - in-place algorithm
* `B` [Jump Game](src/algorithms/uncategorized/jump-game) - backtracking, dynamic programming (top-down + bottom-up) and greedy examples
* `B` [Unique Paths](src/algorithms/uncategorized/unique-paths) - backtracking, dynamic programming and Pascal's Triangle based examples
* `B` [Jump Game](src/algorithms/uncategorized/jump-game) - backtracking, dynamic programming (top-down + bottom-up) and greedy examples
* `B` [Unique Paths](src/algorithms/uncategorized/unique-paths) - backtracking, dynamic programming and Pascal's Triangle based examples
* `B` [Rain Terraces](src/algorithms/uncategorized/rain-terraces) - trapping rain water problem (dynamic programming and brute force versions)
* `B` [Recursive Staircase](src/algorithms/uncategorized/recursive-staircase) - count the number of ways to reach to the top (4 solutions)
* `A` [N-Queens Problem](src/algorithms/uncategorized/n-queens)
@@ -214,6 +214,10 @@ tree is being used.

## How to use this repository

You can either set up this repository locally by following the steps below or use [gitpod.io](https://gitpod.io) a free online VS-Code like IDE, with a single click it will launch a ready to code workspace with all the dependencies pre-installed so that you can start hacking around with the project without wasting any precious time on the development setup.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/trekhleb/javascript-algorithms)

**Install all dependencies**
```
npm install
Loading