嵌入式学习第七天
今天学习了排序算法的冒泡排序和插入排序以及查找算法
冒泡排序
核心思想:比较两个相邻的数的大小,小的放前面,大的放后面。
代码:
for(i= 0;i<n;++i)
{
for(j=1;j<n-i:++j)
{
if(a[j]>a[j+1])
{
交换位置
}
}
}
插入排序
:将数据放到已排序的数据中,通过比较插入合适的位置
核心代码:
int a[n];
int b[n];
int i = 0;
for(i 0;i<n;++i)
{
int t = a[0];
i = j;
while(j>0 && t < b[j-1])
{
b[j] = b[j-1];
--j;
}
a[j] = t;
}
查找算法
二分查找
核心代码:
int b=0,m=0,e=0;
int n;
while(b<=e)
{
m = (b+e) / 2;
if(n > m)
{
b = m +1;
}else
{
e = m - 1;
}
}
if(b<=e)
{
printf("找到了");
}else
{
printf("没有找到");
}
一维整形数组的用途
1.求极值
2.求逆序
3.排序
4.查找
一维浮点型数组
语法定义:
类型说明符 数组名[ 数组长度]——和int数组没什么区别,主要是处理字符数据。
注意
1.字符数组是用来处理一串字符串数据
2.字符串数据实际上按字符数组的处理方式处理的
3.字符串数据中我们更关心字符在什么时候结束,而不是数组在什么时候结束。字符串结束的标志——'\0'
字符数组:
1.怎么处理字符串?
字符串长度 ——'\0'前面有效字符的个数
C语言中用strilen函数可以获取长度
gets()——从标准输入中获得一个字符串,C语言中不推荐使用,因为会越界
puts()——打印出数组对应的字符串 注意:puts输出时,默认带 换行
字符串复制:
#include <string.h>
char *strcpy(char *dest, const char *src);
如果不使用C语言提供的复制函数也要会自己写。
eg:strcpy(s1,s2);
字符串合并:
#include <string.h>
char *strcat(char *dest, const char *src);
eg:strcat(s1,s2);
