Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

348
Vistas
Clasificación asíncrona (usando tareas) en .NET

Estoy creando un intérprete y necesito crear una función en mi biblioteca estándar que ordene según un comparador definido por el usuario. Este comparador debe ser asíncrono, por lo que requiere que una función de clasificación en sí misma sea asíncrona (usando Task s).

¿Existe una función de clasificación .NET existente que permita Tareas en el comparador? Es decir, el comparador devuelve Task<int> y la función de clasificación completa Task y usa int para ordenar.

Por ejemplo, una versión de la List.Sort(IComparer<T> ) donde Compare(T,T) devolvió Task<int> en lugar de int .

(Estoy usando F # pero estoy feliz de usar bibliotecas C #)

Editar: imagine que el comparador necesita hacer un HTTP POST para comparar dos elementos.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Podría implementar una implementación de mergesort asíncrono que haría eso.

Y, de hecho, el artículo de Wikipedia sobre Mergesort en realidad analiza implementaciones paralelas.

El algoritmo básico es la simplicidad misma:

  • Comience con una lista de elementos para ordenar
  • Si su longitud es 0 o 1, ya está: ya están ordenados por definición.
  • Divide esa lista en dos mitades
  • Combinar recursivamente ordenar cada mitad, y luego
  • fusionarlos juntos.

Si su lista es una lista enlazada, no se necesita memoria adicional, ya que el next punto proporciona todo lo que se necesita.

Si su lista es una construcción similar a una matriz, entonces tiene que consumir memoria adicional para crear matrices que funcionen para cada mitad, ya que una combinación en el lugar no es muy práctica.

Editado para tener en cuenta: aquí hay un pequeño documento de Microsoft sobre la implementación de un mergesort paralelo .Net con varias particiones, no solo 2: https://devblogs.microsoft.com/pfxteam/parallel-merge-sort-using-barrier/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda