Какой самый быстрый метод поиска дубликатов в нескольких (больших) связанных списках.Вместо этого я попытаюсь проиллюстрировать проблему с массивами, чтобы сделать ее более читабельной.(Я использовал цифры от 0 до 9 для простоты вместо указателей).
list1[] = {1,2,3,4,5,6,7,8,9,0};
list2[] = {0,2,3,4,5,6,7,8,9,1};
list3[] = {4,5,6,7,8,9,0,1,2,3};
list4[] = {8,2,5};
list5[] = {1,1,2,2,3,3,4,4,5,5};
Если я сейчас спрашиваю: «существует ли число 8 в списке 1-5?»Я мог бы отсортировать списки, удалить дубликаты, повторить это для всех списков и объединить их в «суперсписок» и посмотреть, равно ли количество (новых) дубликатов числу списков, которые я просматриваю.Предполагая, что я получил правильное количество дубликатов, я могу предположить, что то, что я искал (8), существует во всех списках.Если бы я вместо этого искал 1, я получу только четыре дубликата, поэтому он не найден во всех списках.
Существует ли более быстрый / более умный / лучший способ достичь вышеуказанного без сортировки и / или изменения списков вв любом случае?
PS: Этот вопрос задается в основном из чистого любопытства и больше ничего!:)