Đầu tiên, khởi tạo ba mảng đã sắp xếp -
int []one = {20, 35, 57, 70}; int []two = {9, 35, 57, 70, 92}; int []three = {25, 35, 55, 57, 67, 70};
Để tìm các phần tử phổ biến trong mảng ba sắp xếp, hãy lặp lại các mảng bằng vòng lặp while và kiểm tra mảng đầu tiên với mảng thứ hai và mảng thứ hai với mảng thứ ba -
while (i < one.Length && j < two.Length && k < three.Length) { if (one[i] == two[j] && two[j] == three[k]) { Console.Write(one[i] + " "); i++;j++;k++; } else if (one[i] < two[j]) i++; else if (two[j] < three[k]) j++; else k++; }
Ví dụ
Bạn có thể thử chạy đoạn mã sau để tìm các phần tử chung trong ba mảng đã sắp xếp.
using System; class Demo { static void commonElements(int []one, int []two, int []three) { int i = 0, j = 0, k = 0; while (i < one.Length && j < two.Length && k < three.Length) { if (one[i] == two[j] && two[j] == three[k]) { Console.Write(one[i] + " "); i++;j++;k++; } else if (one[i] < two[j]) i++; else if (two[j] < three[k]) j++; else k++; } } public static void Main() { int []one = {20, 35, 57, 70}; int []two = {9, 35, 57, 70, 92}; int []three = {25, 35, 55, 57, 67, 70}; Console.Write("Common elements: "); commonElements(one, two, three); } }
Đầu ra
Common elements: 35 57 70