我有一个包含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