杂记–算法学习日志+关于实验室部门架构的思考+嵌入式一些日常小技巧分享
算法学习日志
因为从初中到现在一直是学习嵌入式程序的开发和研究,并没有在面向对象的程序上有很大的研究和进展,在近期发现不只是像底层拓宽自己的技术领域同时也要在像更加面向对象或者是高级AI方向的算法也要有一定的涉猎,所以目前对于我而言Python和C++成了我在目前学习嵌入式操作系统的同时也要必须掌握的一层技术 又因为本周基本所有的精力都放在实验室数个项目的组织架构上,虽然在管理能力和运营能力上有了大幅提升,但也让我看到了自己对某些层面的把控不足的情况,这其中的原因包括了很多方面首当其冲的就是自己的技术面有一定的局限性,虽然在嵌入式领域有一定的积累和经验,但是相关联的其他的一些技术领域就没有能够轻松把控的能力,接下来我会提升一下这方面的能力 第三点情况是在接下来我会经手FSR集群控制实验室的大量项目,我在一定程度上也会在个人博客上记录这些项目中带给我的成长和这些项目的进展情况
另感谢我可爱的老婆大人对我的全力支持,这让我有动力将一切做的更好。
逗号运算符
逗号运算符优先级低于赋值符
计算结果为最后一个表达式的值
A,B,C sum=C;
引用
double a;
double& R=a;
simple rubbish bucket sorting
#include<iostream>
#include<cstdio>
using namespace std;
int main(void) {
int a[11] = { 0 };
int b[5] = { 0 };
for (int i = 0; i < 5; i++) {
cin >> b[i];
}
for (int i = 0; i < 5; i++) {
a[b[i]]++;
}
for (int i = 0; i < 11; i++) {
for (int j=0; j < a[i]; j++) {
cout << i << endl;
}
}
return 0;
}
Bubble sorting
int Bubble_sorting() {
int Waiting_Sequence[100] = {0}, n = 0;
int temp = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> Waiting_Sequence[i];
}
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i; j++) {
if (Waiting_Sequence[j] <= Waiting_Sequence[j + 1]){
temp = Waiting_Sequence[j + 1],Waiting_Sequence[j + 1] = Waiting_Sequence[j],Waiting_Sequence[j] = temp;
}
}
}
for (int i = 0; i < n; i++) {
cout << Waiting_Sequence[i]<<endl;
}
return 0;
}
- Buckte_sort 的时间复杂度为O(M+N)
- 算法的时间复杂度,用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述
- 我才第一天开始正式学习算法就少写一点。。。虽然说我写数据传输协议一大堆的链表和循环队列随时都在用但是说真的我从来没有好好查过时间复杂度是个啥玩意,现在还是要正式系统的学一下这块东西,因为真的对后期的技能是一个指导性的技能。
嵌入式日常分享
- 目前马上要展开研究的是嵌入式系统的研究,包括了主要的两个部分 :
- ROS+SLAM 方向的研究
- 外部传感器对于LINUX更具体的说是对TX2上所运行的UBUNTU 18.04(NVIDIA版本)的数据传输,其中包含多种传感器(最主要的是激光雷达,IMU,下位机数据交互和多机器的数据分析)的多种协议层,目前看到TX2上能够在仅仅13W的功耗下就能够完成很多的功能和TOP10的算力,这真的很惊艳,而且还有那么多的外部交互口包括了几十个GPIO,两个以太网,两个CAN,几个专属串口,几个IIC和SPI,真的太全面了,在使用体验上来说,小巧的核心身材又能带来装载在无人机上的可能。我其实一直有很多关于这方面的思考,既然用嵌入式系统级的板子能做这么多事情,我为什么还要用STM32,当然我是指成本完全不必考虑的情况下,只需要一块NVIDIA的核心板所有事情都解决了。
- 首先做了UBUNTU 18.04 在电脑上的配置 然后 搞笑的部分来了 … 我有一块副屏幕 DP口的,我在电脑上运行UBUNTU18.04的时候发现 副屏幕驱动不起来 我尝试了各个论坛社区的十万种方法,最后发现还是搞不定 但是我找到搞不定的原因了 ;UBUNTU 上的显卡驱动因为版本错乱所以默认只能使用集成显卡作为显示屏输出,但是我电脑背后那个HDMI-DP的口是只能由集成显卡驱动的,但是集成显卡又只能驱动一个屏幕 所以只能让独显来驱动笔记本显示屏,两者交换一下控制权,但是LINUX我还没学那么深入只好作罢,这也凸显出了一个问题 UBUNTU的包支持真的就是不咋地,尤其是驱动部分,于是果断换ARCH 的另外一个衍生版本 manjalo 这个超级神器的资源支持真的无敌,一开机两个屏幕都亮了,驱动早就搞定了。ubuntu还要费那么多功夫去解决问题真是让人头大。
- 第二个事情呢 研究了DJI LIVOX出的车规级激光雷达 的各种驱动和演示 真的太强大了,很快这个东西会进入我所主要研发的系统中,并且作为一个很重要的部分出现。
暂时先这么多,因为这周主要在忙实验室的组建。
|