我有以下程序通过数组创建 100 个随机元素。这 100 个随机值是唯一的,每个值只显示一次。
尽管使用线性搜索,它会不断查找整个数组。我怎样才能将锯齿状阵列放入其中,所以它只“扫描”剩下的剩余位置?(假设我将表格保持在 100 个最大元素,因此如果生成一个随机值,则该数组包含 99 个元素并进行线性搜索扫描等等......)
我假设我必须在 FoundLinearInArray 的某处实现锯齿状数组?
希望这有任何意义。问候。
private int ValidNumber(int[] T, int X, int Range)
{
Random RndInt = new Random();
do
{
X = RndInt.Next(1, Range + 1);
} while (FoundLinearInArray(T, X));
return X;
}/*ValidNumber*/
private bool FoundLinearInArray(int[] A, int X)
{
byte I = 0;
while ((I < A.Length) && (A[I] != X))
{
I++;
}
return (I < A.Length);
}/*FoundInArray*/
public void FillArray(int[] T, int Range)
{
for (byte I = 0; I < T.Length; I++)
{
T[I] = ValidNumber(T, I, Range);
}
}/*FillArray*/