Предположим, у меня есть массив (NSArray), который называется arrayA -> {@"A", @"B", @"C", @"D", @"E"}
. И у меня есть другой массив (NSArray), который называется arrayB -> {@"D", @"E", @"F", @"G", @"H"}
.NSArray наиболее эффективный способ сделать это:
Самый эффективный способ получить два массива: 1. Массив, который является подмножеством обоих из них, поэтому в этом случае это будут {@ "D", @ "E"} и подмножество, которое является уникальным в массиве B, поэтому {@ "F", @ "G", @ "H"}.
Это проще, если вы посмотрите на эту VEN схеме: http://theconsigliori.com/blog/wp-content/uploads/2009/09/venn-diagram.jpg
А и В являются массивы, я хочу, чтобы получить 2 массивы, 1. A&B
2. B-(A&B).
Я использую Objective-C/какао касание, но любая общая идея приветствуется. Массив будет составлять приблизительно 6000 элементов, и я делаю это на iPad.
Спасибо!
Это не IPad или Objective-C вопрос, скорее CS-основы вопрос, imho. Возможно, вам это поможет: http://stackoverflow.com/questions/2406097/efficient-algorithm-to-find-a-maximum-common-subset-of-two-sets – Kheldar