docs(Spanish): add quick sort (#793)
Co-authored-by: Ming Tsai <37890026+ming-tsai@users.noreply.github.com>pull/789/head
parent
5d703d8170
commit
16a16eb67e
18
README.md
18
README.md
|
@ -12,7 +12,9 @@
|
|||
Data structure and Algorithm (DSA)
|
||||
|
||||
## Explanations
|
||||
|
||||
- [English](./docs/en)
|
||||
- [Español](./docs/es)
|
||||
- [Português](./docs/pt)
|
||||
- [Turkish](./docs/tr)
|
||||
- [繁體中文](./docs/zh-tw)
|
||||
|
@ -117,14 +119,14 @@ The programming should keep the naming convention rule of each programming langu
|
|||
|
||||
## Reviewers
|
||||
|
||||
| Programming Language | Users |
|
||||
| -------------------- | ------------------------------------------------- |
|
||||
| C or C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM |
|
||||
| Java | @TawfikYasser, @aayushjain7 |
|
||||
| C# | @ming-tsai, @Waqar-107 |
|
||||
| Go | |
|
||||
| Python | @Arsenic-ATG, @sridhar-5 |
|
||||
| JavaScript | @ming-tsai |
|
||||
| Programming Language | Users |
|
||||
| -------------------- | ------------------------------------------------ |
|
||||
| C or C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM |
|
||||
| Java | @TawfikYasser, @aayushjain7 |
|
||||
| C# | @ming-tsai, @Waqar-107 |
|
||||
| Go | |
|
||||
| Python | @Arsenic-ATG, @sridhar-5 |
|
||||
| JavaScript | @ming-tsai |
|
||||
|
||||
## Contributors
|
||||
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
# Nombre del algoritmo
|
||||
|
||||
Escribe una breve descripción del algoritmo como:
|
||||
|
||||
1. Complejidad temporal
|
||||
2. Complejidad espacial
|
||||
3. Aplicaciones
|
||||
4. Nombre del creador
|
||||
5. etc...
|
||||
|
||||
## Pasos
|
||||
|
||||
Describe el algoritmo como pasos simples, claros y entendibles.
|
||||
|
||||
## Ejemplo
|
||||
|
||||
Provee al algoritmo de datos de entrada de muestra.
|
||||
|
||||
## Implementación
|
||||
|
||||
Enlaces a sus implementaciones en lenguajes de programación.
|
||||
NOTA: El enlace debe estar solo dentro de la carpeta algorithms.
|
||||
|
||||
## URL del video
|
||||
|
||||
Adjunta una URL a un video que explique el algoritmo.
|
||||
|
||||
## Otro
|
||||
|
||||
Cualquier otra información es siempre bienvenida y debería ser incluida en esta sección.
|
|
@ -0,0 +1,58 @@
|
|||
# Quick Sort
|
||||
|
||||
1. **Complejidad temporal:** O(n^2) ocurre cuando el pivote elegido es siempre un elemento extremo (el más pequeño o el más grande).
|
||||
2. **Complejidad espacial:** O(n).
|
||||
3. **Aplicaciones:** Computación comercial, búsqueda de información, investigación de operaciones, simulación dirigida por eventos, cómputos numéricos, búsqueda combinatoria.
|
||||
4. **Nombre del creador:** Tony Hoare
|
||||
|
||||
## Pasos
|
||||
|
||||
1. Considera el último elemento de la lista como pivote.
|
||||
2. Define dos variables i y j. Asigna i y j al primer y último elemento de la lista.
|
||||
3. Incrementa i hasta que lista[i] > pivote y luego detente.
|
||||
4. Disminuye j hasta que lista[j] < pivote y luego detente.
|
||||
5. Si i < j, entonces intercambia lista[i] y lista[j].
|
||||
6. Repite los pasos 3, 4 y 5 hasta que i > j.
|
||||
7. Intercambia el elemento pivote con el elemento lista[j].
|
||||
|
||||
## Ejemplo
|
||||
|
||||
**Dado el vector: [10, 80, 30, 90, 40, 50, 70]**
|
||||
|
||||
**Pivote (último elemento) : 70**
|
||||
|
||||
**1. 10 < 70 entonces i++ e intercambia(lista[i], lista[j]):** [10, 80, 30, 90, 40, 50, 70]
|
||||
|
||||
**2. 80 < 70, entonces no es necesario hacer nada:** [10, 80, 30, 90, 40, 50, 70]
|
||||
|
||||
**3. 30 < 70 entonces i++ e intercambia(lista[i], lista[j]):** [10, 30, 80, 90, 40, 50, 70]
|
||||
|
||||
**4. 90 < 70, entonces no es necesario hacer nada:** [10, 30, 80, 90, 40, 50, 70]
|
||||
|
||||
**5. 40 < 70 entonces i++ e intercambia(lista[i], lista[j]):** [10, 30, 40, 90, 80, 50, 70]
|
||||
|
||||
**6. 50 < 70 entonces i++ e intercambia(lista[i], lista[j]):** [10, 30, 40, 50, 80, 90, 70]
|
||||
|
||||
**7. Intercambia lista[i+1] y el pivote:** [10, 30, 40, 50, 70, 90, 80]
|
||||
|
||||
**8. Aplica Quick Sort a la parte izquierda del pivote:** [10, 30, 40, 50]
|
||||
|
||||
**9. Aplica Quick Sort a la parte derecha del pivote:** [70, 80, 90]
|
||||
|
||||
**10. Vector ordenado:** [10, 30, 40, 50, 70, 80, 90]
|
||||
|
||||
## Implementación
|
||||
|
||||
- [Java](../../../algorithms/Java/sorting/quick-sort.java)
|
||||
- [JavaScript](../../../algorithms/JavaScript/src/sorting/quick-sort.js)
|
||||
- [Go](../../../algorithms/Go/sorting/quicksort.go)
|
||||
- [C++](../../../algorithms/CPlusPlus/Sorting/quick-sort.cpp)
|
||||
- [Python](../../../algorithms/Python/sorting/quicksort.py)
|
||||
- [C](../../../algorithms/C/sorting/quick-sort.c)
|
||||
## URL del video
|
||||
|
||||
[Video de Youtube sobre Quick Sort](https://www.youtube.com/watch?v=DYmTpUfcyT8)
|
||||
|
||||
## Otro
|
||||
|
||||
[Wikipedia](https://es.wikipedia.org/wiki/Quicksort)
|
|
@ -0,0 +1,9 @@
|
|||
# Algoritmos
|
||||
|
||||
## Ordenamiento
|
||||
|
||||
- [Quick Sort](./Ordenamiento/Quick-Sort.md)
|
||||
|
||||
## Otro
|
||||
|
||||
[Cómo agregar nueva documentación a un algoritmo?](./CONTRIBUTING.md)
|
Loading…
Reference in New Issue