C++实现顺序查找

C++实现顺序查找

  • 需求.给定一个元组和查找的数字,根据查找数字,返回数组中对应数字的下标(索引)
1、创建数组、查找数字、数组长度:
	int data[] = { 3,2,4,1,5,6 };  // 创建数组
	int val = 1;  // 要查找数
	int len= sizeof(data) / sizeof(data[0]) - 1;  // 列表长度
2、设计函数:
int liner_search(int data[], int len, int value)  // data[]->传入的数组、len->数组的长度
{
	for (int i = 0; i <= len; i++)
	{
		if (data[i] == value)  // 如果数组中,第i个位置的数字 = 传入的数字
		{
			return i;  // 返回数组下标
		}
	}
	return NULL;  // 整个循环结束还没找到数字下标,返回NULL
}
3、源码:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;


int liner_search(int data[], int len, int value)  // data[]->传入的数组、len->数组的长度
{
	for (int i = 0; i <= len; i++)
	{
		if (data[i] == value)  // 如果数组中,第i个位置的数字 = 传入的数字
		{
			return i;  // 返回数组下标
		}
	}
	return NULL;  // 整个循环结束还没找到数字下标,返回NULL
}


void test01()
{
	int data[] = { 3,2,4,1,5,6 };  // 创建数组
	int val = 1;  // 要查找数
	int len = sizeof(data) / sizeof(data[0]) - 1;  // 列表长度

	int index= liner_search(data, len, val);  // 函数调用

	cout << "index:" << index<< endl;
}


int main()
{

	test01();

	system("pause");
	return 0;
}
4、查找数字为1时,输出结果:

index:3

总结:

该案例主要练习->函数传参、数组的创建方式、函数如何接收数组、返回值的类型等。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C++实现顺序查找算法和二分法查找算法的示例代码: ```c++ #include <iostream> #include <vector> #include <algorithm> using namespace std; // 顺序查找算法 int seqSearch(vector<int>& nums, int target) { for (int i = 0; i < nums.size(); i++) { if (nums[i] == target) { return i; } } return -1; // 查找失败 } // 二分法查找算法 int binarySearch(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; while (left <= right) { int mid = (left + right) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1; // 查找失败 } int main() { vector<int> nums = {3, 5, 2, 8, 4, 7, 1, 6}; sort(nums.begin(), nums.end()); // 二分法查找算法需要有序表 int target = 4; int index1 = seqSearch(nums, target); // 调用顺序查找算法 int index2 = binarySearch(nums, target); // 调用二分法查找算法 if (index1 != -1) { cout << "顺序查找成功,目标元素下标为:" << index1 << endl; } else { cout << "顺序查找失败,未找到目标元素" << endl; } if (index2 != -1) { cout << "二分法查找成功,目标元素下标为:" << index2 << endl; } else { cout << "二分法查找失败,未找到目标元素" << endl; } return 0; } ``` 以上代码中,我们使用了STL中的vector容器来存储顺序表元素,并使用sort函数对其进行排序,以便二分法查找算法能够正确执行。在main函数中,我们分别调用了顺序查找算法和二分法查找算法,查找目标元素的值为4。最后,根据返回的下标值,输出查找结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值