JAVA编程 分别实现顺序查找和二分查找算法﹐输出在序列(5,11,23,35,51,64,72,85,88,90,98)中,分别使用顺序查找和二分查找,查询30和72的比较次数和查找结果,并输出
时间: 2023-03-22 16:02:23 浏览: 101
顺序查找算法代码如下:
```
public class SequentialSearch {
public static void main(String[] args) {
int[] nums = {5, 11, 23, 35, 51, 64, 72, 85, 88, 90, 98};
int target1 = 30;
int target2 = 72;
int count1 = 0;
int count2 = 0;
int index1 = -1;
int index2 = -1;
for (int i = 0; i < nums.length; i++) {
count1++;
if (nums[i] == target1) {
index1 = i;
break;
}
}
for (int i = 0; i < nums.length; i++) {
count2++;
if (nums[i] == target2) {
index2 = i;
break;
}
}
System.out.println("使用顺序查找,查询30的比较次数为" + count1 + ",查询结果为" + index1);
System.out.println("使用顺序查找,查询72的比较次数为" + count2 + ",查询结果为" + index2);
}
}
```
二分查找算法代码如下:
```
public class BinarySearch {
public static void main(String[] args) {
int[] nums = {5, 11, 23, 35, 51, 64, 72, 85, 88, 90, 98};
int target1 = 30;
int target2 = 72;
int count1 = 0;
int count2 = 0;
int index1 = -1;
int index2 = -1;
int left = 0;
int right = nums.length - 1;
while (left <= right) {
count1++;
int mid = left + (right - left) / 2;
if (nums[mid] == target1) {
index1 = mid;
break;
} else if (nums[mid] < target1) {
left = mid + 1;
} else {
right = mid - 1;
}
}
left = 0;
right = nums.length - 1;
while (left <= right) {
count2++;
int mid = left + (right - left) / 2;
if (nums[mid] == target2) {
index2 = mid;
break;
} else if (nums[mid] < target2) {
left = mid + 1;
} else {
right = mid - 1;
}
}
System.out.println("使用二分查找,
阅读全文
相关推荐
















