基础学习打卡(一)

最近学了一些最最简单基础的算法
写点东西记录总结一下(因为是业余自学啦,文中有什么错误欢迎大家指正)

简单的排序算法

首先就是大家都非常熟悉的冒泡排序法
该方法是由两个简单的for循环构成,第二层循环是把数组中小的那个数尽量往前推,第一层呢就是总共有多少数,就需要“推进”多少次。

void mopao(int *a,int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=n-1;j>=i;j--)
if(a[j-1]>a[j])	{t=a[j-1];  a[j-1]=a[j];  a[j]=t;}
}

然后是插入排序
插入排序法首先对数组的前两个数进行排序,将第三个数和前两个数进行对比,然后插入合适位置,以此类推,直到把最后一个数插入合适位置。

void charu(int *a,int n)
int i,j,t;
for(i=0;i<n;i++)
{
	t=a[i];
	j=i-1;
	while(j>=0&&t<a[j])	{a[j+1]=a[j];	j--;}
	a[j+1]=t;
}

希尔排序
该算法主要思想为分组,然后组内排序,使得数组有序性大大增加,最后通过一次插入排序使得数组成为有序序列。(代码在借用百度的基础上修改了一下)

#include<stdio.h>
#include<math.h>

#define MAXNUM 10
void shellSort(int array[], int n, int t);//t为排序趟数
int main()
{
   
    int array[MAXNUM], i;
    for (i = 0;i < MAXNUM;i++)
        scanf_s("%d", &array[i]);
    shellSort(array, MAXNUM, (int)(log(MAXNUM+1)/log(2)));//排序趟数应为log2(n+1)的整数部分
    for (i = 0;i < MAXNUM;i++)
        printf("%d ", array[i]);
    printf("\n");
    return 0;
}
//希尔排序
void shellSort(int array[], int n, int t)
{
    int i;
    for (i = 1;i <= t;i++)
    {
        int a,j, temp;
        int dk = (int)(pow(2, (double)t - i + 1) - 1);
        for (a = dk;a < n;a++)//分别向每组的有序区域插入
        {
            temp = array[a];
            for (j = a - dk; (j >= a % dk) && array[j] > temp; j -= dk)//比较与记录后移同时进行
                array[j + dk] = array[j];
            if (j != a - dk)
                array[j + dk] = temp;//插入
        }
    }
}

折半查找

折半查找就像在数据两端设置障碍,通过不断缩小障碍的范围提高查找效率。

int isearch(int a[],int n,int x)
{
	int mid,low,high;//数组的中间,头,尾;
	low=0;	high=n-1;//初始化头尾的位置
	while(low<=high)
	{
		mid=(low+high)/2
		if(a[mid]==x)
			return mid;
		else if(a[mid]>x)
			high=mid-1;
		else
			low=mid+1;
	}
}

求最大值算法

这个就很简单了,用一个临时变量t,将其赋值为第一个元素,然后依次与后面的元素进行比较,若小于后面的数,则赋值为后面面的数。

#include<stdio.h>
void main()
{
	int x[10],t,i;
	for(i=0;i<10;i++)
	{
		printf("输入:%d",i+1)
		scanf(%d,&x[i]);
	}
	t=x[0];
	for(i=1;i<10;i++)
	if(t<x[i])		{t=x[i];}
	printf("the max number:%d",t);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要制作一个打卡机器人,首先需要了解有关机器人的知识,如传感器、机器人控制器、机器人驱动器等。其次,根据需要的功能,设计机器人系统的结构,并将相关硬件连接起来,使用软件编程,实现打卡机器人的功能。最后,要测试机器人,确保其能够正确完成预期的任务。 ### 回答2: 制作一个打卡机器人需要以下步骤: 1. 硬件选择:选择一个合适的硬件平台,如树莓派或Arduino,并购买相应的传感器组件,如面部识别摄像头或指纹识别模块。 2. 硬件连接:按照传感器组件的说明书,将其连接到选定的硬件平台上。确保所有线路正确连接并稳定。 3. 编写软件:使用合适的编程语言(如Python或C++)编写机器人的控制软件。软件应包括以下功能: - 与传感器组件的通信,如通过摄像头捕捉人脸图像或使用指纹传感器验证指纹。 - 数据存储功能,如将打卡记录存储到数据库中。 - 界面设计,用户可以通过界面进行打卡操作或查看打卡记录。 4. 人脸或指纹识别算法:根据具体需求,选择适当的人脸或指纹识别算法,并将其集成到软件中。该算法能够对输入的人脸图像或指纹进行识别,以验证用户身份。 5. 打卡逻辑:根据实际需求,编写打卡逻辑。例如,当用户在摄像头前出现时,机器人将捕捉用户的人脸图像并与已存储的人脸图像进行比对。如果匹配成功,则记录用户的打卡时间并保存到数据库中。 6. 测试和调试:在完成以上步骤后,对机器人进行测试和调试。验证机器人是否能够准确地识别人脸或指纹,并正确地记录和存储打卡数据。 制作一个打卡机器人需要不少技术和知识,除了硬件和软件方面的技术知识外,还需要熟悉人脸或指纹识别算法等相关领域的知识。同时,确保机器人的使用符合当地法律法规,保护用户的隐私权。 ### 回答3: 制作一个打卡机器人需要以下几个步骤: 1. 硬件选购:选择适用于打卡机器人的硬件,比如树莓派、摄像头、感应器等。 2. 编程语言选择:根据硬件的兼容性和自己的熟悉程度,选择适合的编程语言,比如Python、C++等。 3. 配置硬件:将摄像头和感应器等设备连接到树莓派或其他主控板上,并进行相应的硬件配置。 4. 编写代码:使用选择的编程语言编写打卡机器人的代码。首先,需要编写一个人脸识别的程序,通过训练模型来识别员工的脸部特征。其次,需要编写一个检测感应器信号的程序,以判断员工是否在打卡机器人的范围内。 5. 数据存储:设计一个数据库来存储员工的打卡记录,可以使用MySQL或其他适合的数据库管理系统。 6. 界面设计:可以通过编写一个简单的界面来让员工输入相关信息,比如员工编号、姓名等。 7. 联网功能:如果需要将打卡数据发送到服务器或其他设备,可以考虑添加网络模块。 8. 测试和调试:在机器人完全制作好后,进行测试和调试。确保人脸识别和感应功能正常,数据存储和联网功能正常。 通过以上步骤,一个基本的打卡机器人就可以制作完成。当然,根据实际需求,还可以添加其他功能,比如语音提示、打卡报表生成等。制作一个打卡机器人需要一定的硬件和软件技术基础,但通过不断学习和实践,可以实现一个高效且准确的打卡系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值