Recursos
- JS: Interview Algorithm. Part 1
- JS: Basics and Tricky Questions
- Medium | Algorithms in JavaScript
- Introducción al diseño de algoritmos en Javascript
- Algorithm Visualizer
- Minimal and clean examples of machine learning algorithms
- Torch implementation of neural style algorithm
- Collection of classic computer science paradigms, algorithms, and approaches written in JavaScript.
- JavaScript implementation of different computer science algorithms
- Atwood's Law applied to CS101 - Classic algorithms and data structures implemented in JavaScript
Según Estrategia
- Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
- Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
- Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios.
- Algoritmos determinísticos: el comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro antecesor.
- Algoritmos no determinísticos: el comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
- Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
- Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
- Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
- Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
- Vuelta atrás (backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.
Herramientas
Recursos
- La secuencia Fibonacci demuestra que los gatos son perfectos
- Fibonacci sequence algorithm in Javascript
- Fibonacci sequence JavaScript interview question. Iterative and Recursive solutions
- Page Rank
- Language Detection
- Nudity Detection
- Sentiment Analysis
- TF-IDF: Term Frequency-Inverse Document Frequency
- Dijkstra’s algorithm
- RSA
- PGP
- Hash
- Compresión de datos
- Generación de números aletorios
- Algorithm visualizer
- trekhleb/javascript-algorithms
- felipernb/algorithms.js
- nzakas/computer-science-in-javascript
- algorithmiaio/algorithmia-nodejs
Recursos
- Data structures in JavaScript
- Data structures in JavaScript, all the code
- Know Thy Complexities!
- Algorithms and Data Structures in JavaScript
- 10 Common Data Structures Explained with Videos + Exercises
- Data Structures in JavaScript (ES5 and ES6)
Estructuras
- Array (Vector/Matriz)
- Hash Table (Tabla hash)**
- Set (Conjunto)
- Singly Linked List (Lista enlazada)
- Doubly Linked List (Lista doblemente enlazada)
- Stack (Pila)
- Queue (Cola)
- Tree (árbol)
- Binary Search Tree (Árbol binario de búsqueda)
- Trie (Trie)
- Graph (Grafo (tipo de dato abstracto))
Documentación
- Web Oficial
- Getting Started
- Tutorials & Guides
- API Reference
- FAQ
- Blog Oficial
- @tensorflow en Twitter
- Github
Demos