¿Cuáles son algunos buenos recursos para aprender sobre la clasificación y búsqueda de algoritmos en C ++?

A continuación se muestran algunos de los algoritmos de clasificación comunes:

Tipo de inserción | Iterativo y recursivo
Selección por selección | Iterativo y recursivo
Tipo de burbuja | Iterativo y recursivo
Fusionar clasificación
Ordenación rápida
Implementación iterativa de Quicksort
Hybrid QuickSort
Tipo de fusión externa

Combinar clasificación para la lista enlazada individualmente

Clasificación del montón (implementación fuera de lugar e in situ en C ++ y C)

Si está interesado, puede consultar los siguientes problemas que pueden resolverse mediante la clasificación:

Orden personalizado | Ordenar los elementos por su frecuencia e índice.
Orden personalizado | Ordenar los elementos de la matriz por orden de los elementos definidos por la segunda matriz
Cuenta de inversión de una matriz
Segregar números enteros positivos y negativos en tiempo lineal

Encuentre la ventana más pequeña en la clasificación de matrices, lo que hará que toda la matriz se ordene
Encuentra el mayor número posible de un conjunto de números dados
Mueve todos los ceros presentes en la matriz hasta el final.
Ordenar la matriz binaria en tiempo lineal

Agrupe los anagramas juntos de la lista de palabras dada
Problema de selección de actividad
Clasificación lexicográfica de un conjunto dado de claves
Fusionar M listas ordenadas de longitud variable
Fusionar las listas ordenadas en M que contienen N elementos
Encuentra todas las permutaciones palindrómicas de una cuerda.
Encuentre todas las siguientes permutaciones lexicográficamente de una cadena ordenada en orden ascendente
Fusionar dos listas enlazadas ordenadas desde su final.
Ordena una matriz que contiene 0, 1 y 2 (problema de la bandera nacional holandesa)
Encuentra el par con la suma dada en la matriz
Inplace fusionar dos matrices ordenadas
Combina dos matrices satisfaciendo las restricciones dadas
Encontrar el producto máximo de dos enteros en una matriz
Encuentra todas las combinaciones distintas de longitud dada
Encuentra todas las combinaciones distintas de longitud dada con repetición permitida
Fusión de intervalos superpuestos

Los libros que me gustan mucho y que os recomiendo son Introducción a los algoritmos. y estructuras de datos y análisis de algoritmos .

En cuanto a los algoritmos en sí, Mergesort y Quicksort son los más populares para la clasificación, mientras que para buscar los que más utilizo son la búsqueda binaria y las tablas hash (también hay heapsort, para usar con heaps y BST).

Algorithms in c ++ de Robert sedgwick (Princeton proff) es un muy buen libro, tiene dos partes, la primera explica los algoritmos de búsqueda y la segunda parte explica los algoritmos de grafos

El segundo libro que sugiero es Estructuras de datos y algoritmos en c ++ de Goodrich. Para empezar, también es un buen libro.