我想找到兩個int數組的交集。我使用此代碼:在C中的兩個int數組的交集#
public int[] Find_Common_Elements(int[] p1, int[] p2)
{
int count = 0;
for (int i = 0; i < p1.Length; i++)
{
for (int j = 0; j < p2.Length; j++)
{
if (p1[i] == p2[j])
{
count++;
break;
}
}
}
int[] result = new int[count];
count = 0;
for (int i = 0; i < p1.Length; i++)
{
for (int j = 0; j < p2.Length; j++)
{
if (p1[i] == p2[j])
{
result[count++] = p1[i];
break;
}
}
}
return result;
}
public int[] BubbleSort(int[] numarray)
{
int max = numarray.Length;
for (int i = 1; i < max; i++)
{
for (int j = 0; j < max - i; j++)
{
if (numarray[j] > numarray[j + 1])
{
int temp = numarray[j];
numarray[j] = numarray[j + 1];
numarray[j + 1] = temp;
}
}
}
return numarray;
}
public int[] Find_Unique_Elements(int[] numarray)
{
BubbleSort(numarray);
int element = numarray[0];
int count = 1;
for (int i = 1; i < numarray.Length; i++)
{
if (element == numarray[i])
continue;
else
{
element = numarray[i];
count++;
}
}
int[] result = new int[count];
count = 0;
element = numarray[0];
result[count++] = element;
for (int i = 1; i < numarray.Length; i++)
{
if (element == numarray[i])
continue;
else
{
element = numarray[i];
result[count++] = element;
}
}
return result;
}
public void Result()
{
int[] array1 = new int[] { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
95, 85, 75, 65, 55, 45, 35, 25, 15, 05,
10, 15, 20, 25, 30, 35, 40, 45, 50, 55
};
int[] array2 = new int[] { 15, 25, 35, 45, 55,
12, 22, 32, 43, 52,
15, 25, 35, 45, 55
};
int[] p1 = Find_Unique_Elements(array1);
int[] p2 = Find_Unique_Elements(array2);
int[] result = Find_Common_Elements(array1, array2);
for (int i = 0; i < p1.Length; i++)
textBox1.Text += "\n" + p1[i].ToString();
for (int i = 0; i < p2.Length; i++)
textBox2.Text += "\n" + p2[i].ToString();
for (int i = 0; i < result.Length; i++)
textBox3.Text += "\n"+result[i].ToString();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Result();
}
但問題是,得到的結果爲15 15 25 25 35 35 45 45 55 55,我想15 25 35 45 55這有什麼代碼問題? 感謝您的幫助
你爲什麼不返回Find_Unique_Elements(結果); –