线性搜索两个数组的共同元素
时间: 2023-05-30 16:02:36 浏览: 69
以下是Python代码实现:
```python
def linear_search(arr1, arr2):
common_elements = []
for i in arr1:
if i in arr2 and i not in common_elements:
common_elements.append(i)
return common_elements
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 4, 5, 6, 7]
print(linear_search(arr1, arr2)) # 输出 [3, 4, 5]
```
该函数接受两个数组作为参数,使用线性搜索的方式查找两个数组中的共同元素,并返回一个包含所有共同元素的列表。在搜索过程中,我们使用了一个空列表来存储已经找到的共同元素,如果一个元素在另一个数组中也出现了且还没有被添加到共同元素列表中,那么就将其添加到列表中。最后返回共同元素列表即可。
相关问题
线性搜索两个数组的共同元素用C++实现
以下是C语言实现线性搜索两个数组的共同元素的示例代码:
```
#include <stdio.h>
void findCommon(int arr1[], int arr2[], int size1, int size2) {
int i, j;
printf("Common Elements: ");
for (i = 0; i < size1; i++) {
for (j = 0; j < size2; j++) {
if (arr1[i] == arr2[j]) {
printf("%d ", arr1[i]);
break;
}
}
}
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {3, 5, 7, 9};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int size2 = sizeof(arr2) / sizeof(arr2[0]);
findCommon(arr1, arr2, size1, size2);
return 0;
}
```
该代码中,我们定义了一个函数`findCommon`,它接受两个数组和它们的大小作为参数。在函数中,我们使用两个循环来遍历这两个数组,如果找到了相同的元素,则输出该元素并跳出内部循环。最后在`main`函数中调用`findCommon`函数并传递两个数组以及它们的大小。
java数组查找元素
Java中可以使用线性查找和二分查找两种方法来查找数组中的元素。
线性查找是逐个遍历数组元素,直到找到目标元素或遍历完整个数组。如果找到目标元素,返回该元素在数组中的索引;如果遍历完整个数组仍未找到目标元素,则返回-1。示例代码如下:
```
public static int getIndex(int[] arr, int key) {
for (int i = 0; i < arr.length; i++) {
if (arr[i == key) {
return i; // 查找到该元素返回该元素在数组中的索引
}
}
return -1; // 没有查找到该元素返回-1
}
```
二分查找是一种更高效的查找算法,但要求数组必须有序。它通过将数组分成两部分,并比较目标元素与中间元素的大小来确定目标元素的位置。如果找到目标元素,返回该元素在数组中的索引;如果未找到目标元素,则返回"-插入点"。插入点指的是在数组中将目标元素插入的位置,即范围内第一个大于目标元素的元素索引。示例代码如下:
```
import java.util.Arrays;
public class FindArray {
public static void main(String[] args) {
double[] score = {99.5, 100, 98, 97.5, 110, 95, 85.5, 100};
Arrays.sort(score); // 对数组进行排序
int index1 = Arrays.binarySearch(score, 100); // 查找100的位置
int index2 = Arrays.binarySearch(score, 60); // 查找60的位置
System.out.println("查找到100的位置是:" + index1);
System.out.println("查找到60的位置是:" + index2);
}
}
```
在以上示例中,我们先使用`Arrays.sort()`方法对数组进行排序,然后使用`Arrays.binarySearch()`方法进行二分查找。当找到目标元素时,返回其在数组中的索引;否则返回"-插入点"。
希望以上解答能满足您的需求,如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [JAVA--数组元素查找方法](https://blog.csdn.net/Xin6Yang/article/details/88778033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Java 数组查找指定元素](https://blog.csdn.net/weixin_52899638/article/details/124508080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]