Como lo sugirió RaviKumar Kothuri, movió el comentario para responder.
En primer lugar, hay muchos parámetros en función de los cuales se puede realizar la clasificación, consideremos que queremos clasificar utilizando el ISBN no. para que cada libro pueda identificarse de manera única.
Así que ordenemos los libros en base al ISBN no. (13 dígitos), suponiendo que tenga un número ISBN válido. si no puede, simplemente escriba una función para verificar si ISBN es válido o no.
- ¿Cómo funciona la búsqueda 'YouTube'? ¿Cómo te señala con precisión una canción con solo unas pocas palabras de la letra?
- ¿Cuáles son algunos ejemplos de software del mundo real de pilas, colas y deques?
- ¿Cuáles son las mejores pautas que una persona puede seguir para mejorar sus habilidades de resolución de problemas?
- ¿Cuál es el algoritmo más eficiente y efectivo para la detección de anomalías / valores atípicos cuando los datos tienen un pico / valle estacional?
- ¿Cuál será el código C si quiero imprimir todos los elementos ingresados en orden inverso sin usar matrices?
público booleano estático isISBN13Valid (String isbn)
{ int check = 0;
para ( int i = 0; i <12; i + = 2)
{
check + = Integer.valueOf (isbn.substring (i, i + 1));
}
para ( int i = 1; i <12; i + = 2)
{
check + = Integer.valueOf (isbn.substring (i, i + 1)) * 3;
}
check + = Integer.valueOf (isbn.substring (12));
cheque de retorno % 10 == 0;
}
Consulte wiki para esto, Número de libro estándar internacional
y finalmente ordenar libros válidos que tengan números ISBN válidos.
Ahora, teniendo en cuenta la escala de la que está hablando, 100 M, primero debe tener una máquina en la que esa cantidad pueda caber bien + algo de espacio para otro proceso (olvidemos esto)
entonces la respuesta es SÍ si no. puede caber en la máquina suponiendo que cada número entero tome 32 bits.
por ejemplo, puede ordenar alrededor de 134217728 enteros usando 4 GB de RAM en el sistema y para 100 m solo necesita 4 MB de memoria, creo que puede ordenar fácilmente en el sistema que tenemos hoy.
Si no es así, debe usar el algoritmo de dividir y conquistar, como Clasificación externa, también conocido como fusión, para no decir que tiene M memoria disponible y N tamaño de datos, debe dividir eso en k = N / M fragmentos, ordenar cada fragmento individualmente y escribe de nuevo en el disco y finalmente fusiona todo esto, mientras combina puede usar Min Heap para minimizar la llamada a lectura-escritura.
Para duplicados funcionales, debe verificar los algoritmos de duplicación de documentos si se refiere a los contenidos