¿Cuáles son algunos de los algoritmos más importantes?

Los algoritmos de recorrido de gráficos, como la primera búsqueda en profundidad, la primera búsqueda en amplitud y la distancia más corta entre dos nodos, se utilizan en aplicaciones de mapeo y en un conjunto de aplicaciones de flujo y enrutamiento de red …

Los algoritmos de recorrido de árbol se utilizan para atravesar cualquier tipo de problemas jerárquicos como representar DOM, sistema de archivos de un sistema operativo, estructuras de montón, operaciones de búsqueda logarítmica (BST), codificación huffman …

Los algoritmos de cadena como los algoritmos de subsecuencia más largos se utilizan para una serie de problemas de biotecnología como problemas de coincidencia de genes …

Listas ordenadas por prioridad utilizadas para controladores, mutexes, etc.

Los árboles rojo-negros se utilizan para la programación, la gestión de memoria virtual, para rastrear entradas de directorio y descriptores de archivos.

Los árboles Radix se utilizan para la gestión de memoria, búsquedas relacionadas con NFS y funciones relacionadas con la red.

El montón de prioridad se usa en el sistema de grupo de control.

Las tablas hash se utilizan para implementar comprobaciones de integridad del sistema de archivos, inodos, etc.

Mergesort en listas vinculadas se utiliza para la administración del sistema de archivos, recolección de basura, etc.

Mi lista de algoritmos ::::

Materiales gratuitos (videos + recursos) para codificación competitiva por Akash Kandpal en Competitive_coding

  1. Girar matriz, invertir palabras en una cadena
  2. Evaluar la notación polaca inversa (pila)
  3. Cuerdas Isomorfas
  4. Word Ladder (BFS), Word Ladder II (BFS)
  5. Mediana de dos matrices ordenadas
  6. Kth Elemento más grande en una matriz
  7. Coincidencia de comodines, Coincidencia de expresiones regulares
  8. Intervalos de fusión, Intervalo de inserción
  9. Dos sumas, Dos sumas II, Dos sumas III, 3 Sumas, 4 Sumas
  10. Suma más cercana
  11. Cadena a entero
  12. Combinar matriz ordenada
  13. Paréntesis válidos
  14. Paréntesis válidos más largos
  15. Implementar strStr ()
  16. Suma de subarrays de tamaño mínimo
  17. Buscar Insertar posición
  18. Secuencia consecutiva más larga
  19. Palíndromo Válido
  20. Conversión de zigzag
  21. Añadir binario
  22. Longitud de la última palabra
  23. Triángulo
  24. Contiene duplicado: I, II, III
  25. 25) Eliminar duplicados de la matriz ordenada: I, II, Eliminar elemento, Mover
  26. Ceros
  27. 27) Subcadena más larga sin repetir caracteres
  28. Subcadena más larga que contiene 2 caracteres únicos [Google]
  29. Subcadena con concatenación de todas las palabras
  30. Subcadena de ventana mínima
  31. Buscar mínimo en matriz ordenada girada: I, II
  32. Buscar en matriz girada: I, II
  33. Min Stack
  34. Elemento mayoritario: I, II
  35. Toros y vacas
  36. Rectángulo más grande en histograma
  37. Prefijo común más largo [Google]
  38. Mayor número
  39. Simplificar ruta
  40. Comparar números de versión
  41. Gasolinera
  42. Triángulo de Pascal: I, II
  43. Contenedor Con Más Agua
  44. Candy [Google]
  45. Atrapar agua de lluvia
  46. 46) Cuenta y di
  47. 47) Buscar un rango
  48. 48) Calculadora básica, Calculadora básica II
  49. Anagramas de grupo
  50. Palindrome más corto
  51. Área de rectángulo
  52. Rangos de resumen
  53. Subsecuencia de triplete creciente
  54. Obtener destino utilizando la lista de números y las operaciones aritméticas
  55. Vocales inversas de una cuerda
  56. Flip Game, Flip Game II
  57. Número perdido, encontrar el número duplicado, primer positivo perdido
  58. Anagrama válido, cadenas de desplazamiento de grupo
  59. Elementos K principales frecuentes
  60. Encontrar elemento de pico
  61. Patrón de palabras, Patrón de palabras II
  62. Índice H, Índice H II
  63. Pares de palindrome
  64. 64) Una distancia de edición
  65. 65) Scramble String
  66. 66) Primera mala versión
  67. Entero a las palabras inglesas
  68. Justificación de texto
  69. Eliminar paréntesis inválidos
  70. Intersección de dos matrices, Intersección de dos matrices II
  71. Ventana deslizante máxima, promedio móvil de flujo de datos
  72. Número de conjetura mayor o menor
  73. Establecer ceros matriciales
  74. 2) matriz espiral
  75. 2) Matriz espiral II
  76. 3) Buscar una matriz 2D
  77. 3) Buscar una matriz 2D II
  78. Girar imagen [Palantir]
  79. Sudoku válido
  80. 6) Suma mínima de ruta (DP) [Google]
  81. Rutas únicas (DP) [Google]
  82. 7) Caminos únicos II (DP)
  83. 8) Número de islas (DFS / BFS), Número de islas II (Conjunto disjunto), Número
  84. de componentes conectados en un gráfico no dirigido
  85. 9) Regiones Rodeadas (BFS)
  86. 10) Rectángulo máximo
  87. 10) cuadrado máximo
  88. 11) Búsqueda de palabras (DFS)
  89. 11) Búsqueda de palabras II
  90. 13) Consulta de suma de rango 2D – Inmutable
  91. 14) Ruta de mayor aumento en una matriz (DFS)
  92. 15) Distancia más corta desde todos los edificios
  93. 16) Juego de la vida
  94. 17) Casa de pintura, Casa de pintura II
  95. 18) Solucionador de Sudoku (DFS)
  96. 19) Muros y puertas (DFS / BFS)
  97. 20) Tic-Tac-Toe
  98. 21) Mejor punto de encuentro Problemas clásicos:
  99. 0) Implementar una pila usando una matriz
  100. 1) Agregue dos números
  101. 2) Lista de pedidos
  102. 3) Ciclo de lista vinculada
  103. 4) Copiar lista con puntero aleatorio
  104. 5) Combinar dos listas ordenadas
  105. 6) Lista par impar impar
  106. 7) Eliminar duplicados de la lista ordenada
  107. 7) Eliminar duplicados de la lista ordenada II
  108. 8) Lista de particiones
  109. 9) caché LRU
  110. 10) Intersección de dos listas enlazadas
  111. 11) Eliminar elementos de lista vinculados
  112. 12) Intercambiar nodos en pares
  113. 13) Lista vinculada inversa, Lista inversa inversa II, Imprimir lista vinculada en invertida
  114. Orden
  115. 14) Eliminar el enésimo nodo del final de la lista (punteros rápidos-lentos)
  116. 15) Implementar pila usando colas
  117. 15) Implementar cola usando pilas
  118. 16) Lista enlazada de Palindrome
  119. 17) Implemente una cola usando una matriz
  120. Eliminar nodo en una lista vinculada
  121. Nodos inversos en el grupo k 4.1 Árbol 1) Recorrido del árbol binario: preordenar,
  122. Inorder, Postorder, Level Order, Level Order II, Vertical Order
  123. Invertir árbol binario
  124. Kth Elemento más pequeño en un BST
  125. Secuencia consecutiva más larga del árbol binario
  126. Validar árbol de búsqueda binaria
  127. 6) Acoplar árbol binario a la lista vinculada
  128. 7) Suma de ruta (DFS o BFS)
  129. 7) Ruta Sum II (DFS)
  130. 8) Construir un árbol binario a partir de un recorrido transversal y posterior al pedido
  131. 8) Construir árbol binario a partir del pedido anticipado y el recorrido del pedido
  132. 9) Convertir matriz ordenada en árbol de búsqueda binaria [Google]
  133. 10) Convertir lista ordenada en árbol de búsqueda binaria [Google]
  134. 11) Profundidad mínima del árbol binario
  135. 12) Suma máxima de ruta de árbol binario *
  136. 13) Árbol binario equilibrado
  137. 14) árbol simétrico
  138. 15) Iterador de árbol de búsqueda binaria
  139. 16) Vista del lado derecho del árbol binario
  140. 17) El ancestro común más bajo de un árbol de búsqueda binaria
  141. 18) El ancestro común más bajo de un árbol binario
  142. 19) Verifique la serialización previa al pedido de un árbol binario
  143. 20) Rellenar los siguientes punteros derechos en cada nodo
  144. 21) Rellenar los siguientes punteros derechos en cada nodo II
  145. 21) Árboles únicos de búsqueda binaria (DP)
  146. 21) Árboles únicos de búsqueda binaria II (DFS)
  147. 22) Sumar raíz a números de hoja (DFS)
  148. 23) Cuenta los nodos de árbol completos
  149. 24) Valor de árbol de búsqueda binario más cercano
  150. 25) Rutas de árbol binario
  151. 26) Profundidad máxima del árbol binario
  152. 27 Recuperar árbol de búsqueda binaria
  153. 28) Mismo árbol
  154. 29) Serializar y deserializar árbol binario
  155. 30) Sucesor de pedido en BST
  156. 31) Encuentra las hojas del árbol binario
  157. 32) El mayor subárbol BST 4.2 Heap 1) Combinar k arreglos ordenados [Google]
  158. 2) Combinar k Listas ordenadas *
  159. 3) Encuentra la mediana del flujo de datos
  160. 4) Salas de reuniones II, Salas de reuniones
  161. 5) Suma de rango 4.3 Trie 1) Implementar Trie (árbol de prefijos)
  162. Agregar y buscar palabra – Diseño de estructura de datos (DFS) 4.4 Árbol de segmentos 1)
  163. Consulta de suma de rango: mutable
  164. El problema del horizonte Clasificación 1) Mergesort
  165. Ordenación rápida
  166. Tipo de inserción.
  167. Espacio máximo (clasificación de cubeta)
  168. Ordenar colores (contar contando)
  169. Tipo de inserción
  170. Tipo de selección
  171. Bubble sortMerge SortQuicksortBinary SearchBreadth First Search (BFS) | Implementación iterativa y recursivaDepth First Search (DFS) | Implementación iterativa y recursiva Algoritmo Lee | Trayectoria más corta en un algoritmo de relleno de MazeFlood Algoritmo de detección del ciclo de Floyd Problema de submatriz máxima (algoritmo de Kadane) Subsecuencia de mayor aumento
  172. Pedido, Preorden, Postorder
  173. Gráficos Algoritmos Amplitud Primera búsqueda (BFS) Profundidad Primera búsqueda (DFS) Ruta más corta desde el origen a todos los vértices ** Dijkstra ** Ruta más corta desde cada vértice a cualquier otro vértice ** Floyd Warshall ** Árbol de expansión mínimo ** Prim ** Mínimo Árbol de expansión ** Kruskal ** Algoritmo de clasificación topológica de Johnson Puntos de articulación (o vértices de corte) en un GraphBridges en un gráfico
  174. Programación dinámica Subsecuencia común más larga Subsecuencia creciente más larga Editar distancia Partición mínima Formas de cubrir una distancia Trayectoria más larga en matriz Problema de suma de subconjunto Estrategia óptima para un juego Problema de mochila de 0-1 Programación de línea de ensamblaje
  175. Búsqueda y clasificación Búsqueda binaria Clasificación rápida Clasificación combinada Estadística de pedido Algoritmo KMP Algoritmo de Rabin karpZ Coincidencia de cadenas de CoraShoho Algoritmo de clasificación Ordenar: Parte 1, Parte 2 y Parte 3
  176. 1. Matrices
    Sepa cómo usar matrices. Los usarás mucho. Aprenda a hacerlos crecer dinámicamente (para lenguajes de programación como C). Sepa cómo usar una matriz de biblioteca estándar (ejemplo: vector) Aprenda a usar cadenas (son matrices). Sepa cómo ordenarlos con dos buenos algoritmos de ordenación ( QuickSort y MergeSort ) Aprenda a buscar en una matriz. Primero búsqueda lineal y luego búsqueda binaria. Aprenda QuickSelect , será útil.
  177. 2. Listas vinculadas
    Aprenda a crear una lista vinculada. Conozca las operaciones básicas: insertar, imprimir, eliminar. No usará mucho las listas enlazadas en la palabra real, pero tener una sólida comprensión de cómo funcionan será de gran utilidad. Conozca diferentes versiones de listas enlazadas: circular y doble , por ejemplo, conozca las ventajas de una lista vinculada frente a una matriz
  178. 3-4. Pilas y colas
    Aprenda a implementar pilas y colas con matrices y listas. Conozca las ventajas. Para las pilas, aprenda la conversión y evaluación postfix. También aprende emparejamiento de paréntesis. Esto te ayudará a dominar las pilas. Para las colas, debes intentar hacer una programación multihilo.
  179. 5. árboles
    Si hizo un trabajo adecuado con las listas vinculadas, los árboles deberían sentirse un poco naturales. Aprenda a implementar un árbol binario (insertar, eliminar, buscar). Conozca las propiedades básicas de un árbol. Aprenda al menos un árbol de equilibrio automático ( AVL, Splay, Rojo-Negro ) .Me gusta mucho la estructura de datos Trie . Tiene algunas aplicaciones bastante agradables. Otra estructura de datos utilizada es el montón. Aprenda Breadth First Search y Depth First Search .
  180. 6. Hashmap
    Hashmap es una estructura de datos realmente útil. Aprenda cómo usarlos y cómo implementar uno (así que aprenda cómo hacer una función de hash ordenada).
  181. 7. Gráficos
    Aprenda qué es un gráfico y cómo implementarlos con matrices y listas. Aprenda cómo usarlos y cómo implementar uno (así que aprenda cómo hacer una función de hash ordenada). Aprenda cómo encontrar la ruta más corta en un gráfico. Implemente DFS y BFS.
  182. 8-10. Algoritmos
    Como mencioné antes, aprenda los algoritmos de clasificación y búsqueda. Aprenda la notación Big O. Busque: MergeSort, QuickSort, HeapSort . Diskstra . No usará esto, pero le dará una mejor comprensión de los gráficos. Hay otros buenos algoritmos que tal vez quiera aprender. Algunos son algoritmos de libros de texto (cadena inversa, subcadena, etc.).
    Espero que esto ayude.
  183. Estructura de datos de matriz
  184. Lista dispersa Lista enlazada
  185. ListStack doblemente enlazado (tipo de datos abstractos)
  186. Cola (tipo de datos abstractos)
  187. Árbol binario de cola doble
  188. TreapRed – black treeHeap (estructura de datos)
    Cadena (informática) y
  189. Trie
    Árbol B
  190. B + treeGraph (tipo de datos abstractos)
  191. Tabla de picadillo
  192. Matriz asociativa
    Búsqueda lineal Algoritmo de búsqueda binaria
  193. Búsqueda ternaria
    Algoritmo de fusión
  194. Ordenar fusión
    Tipo de inserción
  195. Timsort
    Heapsort
  196. Algoritmo de selección de clasificación rápida Recorrido gráfico
  197. Algoritmo de Dijkstra
  198. Algoritmo de Bellman-Ford
    Clasificación topológica
    Estructura de datos de conjunto disjunto
  199. Árbol de expansión mínimo
    Red de flujo
  200. http://www.iarcs.org.in/inoi/onl

Algunas fuentes que podrías usar:
http://cs.yale.edu/homes/aspnes/https://www.interviewbit.com/das ..

Seguiré actualizando las listas a medida que lo haga. Cualquier recomendación o cambio o adición / eliminación son bienvenidos 🙂