如何打印线性搜索后找到元素的索引?JAVA
我正在制作一个程序,在这个程序中,使用线性搜索来迭代100个随机生成的小于10000的数字数组 用户输入开始编号、中间编号和结束编号,线性搜索将在数组中迭代,并告诉用户在哪个索引中找到了元素 我已经实现了线性搜索,一切似乎都很好,但在实现了线性搜索之后,我似乎无法打印出元素的索引 我提供了代码、输入和输出: 代码:如何打印线性搜索后找到元素的索引?JAVA,java,Java,我正在制作一个程序,在这个程序中,使用线性搜索来迭代100个随机生成的小于10000的数字数组 用户输入开始编号、中间编号和结束编号,线性搜索将在数组中迭代,并告诉用户在哪个索引中找到了元素 我已经实现了线性搜索,一切似乎都很好,但在实现了线性搜索之后,我似乎无法打印出元素的索引 我提供了代码、输入和输出: 代码: import java.util.Scanner; import java.util.Random; import java.util.Arrays; public class A
import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// generating n, 0 < n < 10000 and 0 < length < 100
Random rand = new Random();
int[] arr = new int[100];
for (int z = 0; z < arr.length; z++) {
arr[z] = rand.nextInt(10000);
}
// sorting
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int startNum = scanner.nextInt();
int midNum = scanner.nextInt();
int endNum = scanner.nextInt();
// linear search
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
System.out.println("Found");
}
else {
System.out.println("Not Found");
}
// where I want to print out the final message such as "startNum found at i"
}
}
boolean startNumFound = false, midNumFound = false, endNumFound = false;
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
System.out.println(startNum + " was found at index, " + i);
startNumFound = true;
} else if (midNum == arr[i]) {
System.out.println(midNum + " was found at index, " + i);
midNumFound = true;
} else if (endNum == arr[i]) {
System.out.println(endNum + " was found at index, " + i);
endNumFound = true;
}
}
if (!startNumFound) {
System.out.println(startNum + " was not found");
}
if (!midNumFound) {
System.out.println(midNum + " was not found");
}
if (!endNumFound) {
System.out.println(endNum + " was not found");
}
import java.util.Scanner;
导入java.util.Random;
导入java.util.array;
公共类应用程序{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
//生成n,0
}
输入:
254
1467
8185
输出:
import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// generating n, 0 < n < 10000 and 0 < length < 100
Random rand = new Random();
int[] arr = new int[100];
for (int z = 0; z < arr.length; z++) {
arr[z] = rand.nextInt(10000);
}
// sorting
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int startNum = scanner.nextInt();
int midNum = scanner.nextInt();
int endNum = scanner.nextInt();
// linear search
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
System.out.println("Found");
}
else {
System.out.println("Not Found");
}
// where I want to print out the final message such as "startNum found at i"
}
}
boolean startNumFound = false, midNumFound = false, endNumFound = false;
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
System.out.println(startNum + " was found at index, " + i);
startNumFound = true;
} else if (midNum == arr[i]) {
System.out.println(midNum + " was found at index, " + i);
midNumFound = true;
} else if (endNum == arr[i]) {
System.out.println(endNum + " was found at index, " + i);
endNumFound = true;
}
}
if (!startNumFound) {
System.out.println(startNum + " was not found");
}
if (!midNumFound) {
System.out.println(midNum + " was not found");
}
if (!endNumFound) {
System.out.println(endNum + " was not found");
}
发现
找不到
找不到
找不到
找不到
找不到
找不到
不
…(是否继续打印未找到?)
我只想保持这个简单,谢谢如果您想在循环外打印结果,那么只需定义另一个值为
-1
的变量,因为索引从零开始,然后将已建立元素的索引存储在其中,如果没有找到,则值将为-1
,这意味着找不到:
// linear search
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
index = i;
break;
}
}
if (index != -1) {
System.out.print(startNum + " Found at index: " + index);
} else {
System.out.println("Not Found");
}
//线性搜索
int指数=-1;
对于(int i=0;i
boolean
变量,以跟踪它们是否被找到。无论在何处找到它们,都要打印它们的索引,并将相应的布尔值
变量的值更改为真值
布尔
变量的值,如果其值未更改为真
,则打印未找到消息import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// generating n, 0 < n < 10000 and 0 < length < 100
Random rand = new Random();
int[] arr = new int[100];
for (int z = 0; z < arr.length; z++) {
arr[z] = rand.nextInt(10000);
}
// sorting
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int startNum = scanner.nextInt();
int midNum = scanner.nextInt();
int endNum = scanner.nextInt();
// linear search
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
System.out.println("Found");
}
else {
System.out.println("Not Found");
}
// where I want to print out the final message such as "startNum found at i"
}
}
boolean startNumFound = false, midNumFound = false, endNumFound = false;
for (int i = 0; i < arr.length; i++) {
if (startNum == arr[i]) {
System.out.println(startNum + " was found at index, " + i);
startNumFound = true;
} else if (midNum == arr[i]) {
System.out.println(midNum + " was found at index, " + i);
midNumFound = true;
} else if (endNum == arr[i]) {
System.out.println(endNum + " was found at index, " + i);
endNumFound = true;
}
}
if (!startNumFound) {
System.out.println(startNum + " was not found");
}
if (!midNumFound) {
System.out.println(midNum + " was not found");
}
if (!endNumFound) {
System.out.println(endNum + " was not found");
}
boolean startNumFound=false,midNumFound=false,endNumFound=false;
对于(int i=0;i