我有一個包含1000萬元元素的整數數組,如何在C#中編寫函數,如果數組中有一對總和最大爲75,則返回True。查找具有給定總和的元素對是否存在於大整數數組中
我的代碼是:
int sum = 75, max = 10000000;
int[] array = new int[max];
bool checkFlag = false;
Random rnd = new Random();
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < max; i++)
{
array[i] = rnd.Next(0, max * 20);
}
Array.Sort(array);
if (array[0] + array[1] <= sum)
{
Console.WriteLine("{0} + {1} = {2}", array[0], array[1], array[0] + array[1]);
checkFlag = true;
}
Console.WriteLine("Sum upto 75 is: " + checkFlag);
首先對數組進行排序,然後在成對上使用二進制搜索? – merlin2011 2014-09-18 23:39:27
_你爲什麼要這樣做?它有什麼用處,或者它只是一個編程練習? – Cyral 2014-09-18 23:39:32
@Cyral:爲什麼會這樣? – 2014-09-18 23:40:20