¿Es válido este intento recursivo de bubbleort o se puede optimizar?

Esto se basa en el tuyo, pero enumera perezosamente.

using System; using System.Collections.Generic; using System.Linq; namespace Algorithms.Sorting { public static class EnumerableExtension { public static IEnumerable ScalarBubbleSort(this IEnumerable items) { var remaining = new List(items); while (remaining.Count > 0) { var subject = remaining[0]; remaining.RemoveAt(0); for (var i = 0; i  current) { remaining[i] = subject; subject = current; } } yield return subject; } } public static IEnumerable BubbleSort(this IEnumerable items, IComparer comparer = null) where T : IComparable { if (comparer == null) { comparer = Comparer.Default; } var remaining = new List(items); while (remaining.Count > 0) { var subject = remaining[0]; remaining.RemoveAt(0); for (var i = 0; i  0) { remaining[i] = subject; subject = current; } } yield return subject; } } } } 

More Interesting

¿Dónde puedo encontrar un entrenador de programación personal que me enseñe programación y algoritmos?

¿Qué es un árbol rojo-negro?

¿Por qué es difícil realizar una búsqueda binaria en una lista vinculada?

¿Cuál es el mecanismo fundamental detrás de los generadores de números aleatorios?

¿Puedo encontrar el camino hamiltoniano más corto en un gráfico completo ponderado no dirigido en tiempo polinómico (donde todos los pesos no son negativos)?

¿Alguien podrá escribir un algoritmo que pueda hacer dinero en el mercado durante un período de 20 años?

¿Se puede aplicar BFS a gráficos ponderados?

¿Cuáles son las mejores rutinas que podemos adoptar para ser buenos en la programación / diseño de algoritmos?

Como senior que busca postularse a empresas como Google, Palantir, etc., ¿cómo puedo mejorar mis estructuras de datos avanzadas, algoritmos y cursos de bioinformática y tener más confianza en mí mismo al ingresar a un aula y no pensar automáticamente que soy estúpido? ?

¿Alguien puede compartir el conocimiento sobre el algoritmo de Monte Carlo que recoge datos al azar?

Cómo encontrar la longitud máxima de la submatriz en una matriz determinada

¿Por qué un montón de emparejamiento es más rápido que un montón binario?

¿Hay algún algoritmo que compita con RegEx? ¿Hay una manera fácil de ejecutar Python RegEx en una GPU?

¿Cuál es el propósito de estudiar pequeñas mejoras (como usar dos hilos o evitar la basura) mientras puedo reducir la complejidad de los algoritmos?

Cómo aprender a implementar algoritmos de aprendizaje automático