Я написал небольшую программу, которая выясняет количество неповторяемых элементов, просто пройдите через это, дайте мне знать ваше мнение, в настоящий момент я предполагаю, что четное число элементов четное, но может легко расширяться и на нечетные числа. 1001 *
Поэтому моя идея состоит в том, чтобы сначала отсортировать числа, а затем применить мой алгоритм attribute.quick для сортировки этих элементов.
Давайте возьмем входной массив, как показано ниже
int arr[] = {1,1,2,10,3,3,4,5,5,6,6};
числа 2,10 и 4 не повторяются, но они расположены в отсортированном порядке, если не отсортированы, сначала используйте быструю сортировку.
Позволяет применить мою программу к этому
using namespace std;
main()
{
//int arr[] = {2, 9, 6, 1, 1, 4, 2, 3, 5};
int arr[] = {1,1,2,10,3,3,4,5,5,6,6};
int i = 0;
vector<int> vec;
int var = arr[0];
for(i = 1 ; i < sizeof(arr)/sizeof(arr[0]); i += 2)
{
var = var ^ arr[i];
if(var != 0 )
{
//put in vector
var = arr[i-1];
vec.push_back(var);
i = i-1;
}
var = arr[i+1];
}
for(int i = 0 ; i < vec.size() ; i++)
printf("value not repeated = %d\n",vec[i]);
}
Это дает вывод:
value not repeated= 2
value not repeated= 10
value not repeated= 4
Это просто и очень просто, просто используйте XOR man.