对具有重复值的数组进行线性搜索
Linear search on array with duplicate values
好的,我有一个算法可以对双精度数组执行线性搜索。当它找到元素时,它会给我数组中的位置。问题是我不知道如何调整算法以使其考虑重复元素。我希望它仍然显示元素的位置,但是我正在努力做到这一点......我也不确定计步器是否真的在工作。如果有人能帮忙就太好了谢谢!
int i = 0;
double item = 0;
int pos = 0;
int steps = 0;
Console.Write("Enter item to search in array : ");
item = double.Parse(Console.ReadLine());
//Loop to search element in array
for (i = 0; i < LowArr.Length; i++)
steps++
{
if (item == LowArr[i])
{
pos = i + 1;
break;
}
}
if (pos == 0)
{
Console.WriteLine("Item Not found in array");
Console.WriteLine("Steps taken in Search: " + steps);
}
else
{
Console.WriteLine("Position of item in array: " + pos);
Console.WriteLine("Steps taken in Search: " + steps);
如果在数组中多次找到该值,我希望它能告诉我位置。
如果找到该值,那么您需要做的就是打印位置:
bool found = false;
for (i = 0; i < LowArr.Length; i++) {
if (item == LowArr[i]) {
Console.WriteLine("Position of item in array: " + i);
found = true;
}
}
if (!found) {
Console.WriteLine("Item Not found in array");
}
我还添加了一个布尔标志,这样我们就可以在找不到该项目时添加一条消息。如果我们只是寻找第一次出现,那么您可以在找到它时从循环中跳出并检查是否 i == LowArr.length
以测试它是否未找到。
好的,我有一个算法可以对双精度数组执行线性搜索。当它找到元素时,它会给我数组中的位置。问题是我不知道如何调整算法以使其考虑重复元素。我希望它仍然显示元素的位置,但是我正在努力做到这一点......我也不确定计步器是否真的在工作。如果有人能帮忙就太好了谢谢!
int i = 0;
double item = 0;
int pos = 0;
int steps = 0;
Console.Write("Enter item to search in array : ");
item = double.Parse(Console.ReadLine());
//Loop to search element in array
for (i = 0; i < LowArr.Length; i++)
steps++
{
if (item == LowArr[i])
{
pos = i + 1;
break;
}
}
if (pos == 0)
{
Console.WriteLine("Item Not found in array");
Console.WriteLine("Steps taken in Search: " + steps);
}
else
{
Console.WriteLine("Position of item in array: " + pos);
Console.WriteLine("Steps taken in Search: " + steps);
如果在数组中多次找到该值,我希望它能告诉我位置。
如果找到该值,那么您需要做的就是打印位置:
bool found = false;
for (i = 0; i < LowArr.Length; i++) {
if (item == LowArr[i]) {
Console.WriteLine("Position of item in array: " + i);
found = true;
}
}
if (!found) {
Console.WriteLine("Item Not found in array");
}
我还添加了一个布尔标志,这样我们就可以在找不到该项目时添加一条消息。如果我们只是寻找第一次出现,那么您可以在找到它时从循环中跳出并检查是否 i == LowArr.length
以测试它是否未找到。