【冒泡排序】c++实现冒泡排序代码
【冒泡排序】c++实现冒泡排序代码
- 【冒泡排序】c++实现冒泡排序代码
- 固态激光雷达
转载自 yangchuang93
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
冒泡排序的基本思想:比较相邻的元素,如果反序则交换。通过第一趟排序能找出最大的元素,并使最大的元素移至最后一位,然后通过第二次排序使次大的元素移至倒数第二位,以此类推,直至所有元素有序。
程序代码如下:
#include<iostream>
using namespace std;void print(int arr[], int n)
{ for(int j= 0; j<n; j++){ cout<<arr[j] <<" "; } cout<<endl;
} void BubbleSort(int arr[], int n)
{for (int i = 0; i < n - 1; i++){for (int j = 0; j < n - i - 1; j++){if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}int main()
{ int s[10] = {8,1,9,7,2,4,5,6,10,3}; cout<<"初始序列:"; print(s,10); BubbleSort(s,10); cout<<"排序结果:"; print(s,10); system("pause");
}
时间复杂度:
空间复杂度:
稳定
固态激光雷达
与传统机械扫描技术的雷达相比,利用光学相控阵扫描技术的固态激光雷达有很多优势:
①结构简单、尺寸小:由于不需要旋转部件,可以大大压缩雷达的结构和尺寸,提高使用寿命,并降低成本。
②标定简单:机械式激光雷达由于光学结构固定,适配不同车辆往往需要精密调节其位置和角度,固态激光雷达可以通过软件进行调节,大大降低了标定的难度。
③扫描速度快:不用受制于机械旋转的速度和精度,光学相控阵的扫描速度取决于所用材料的电子学特性,一般都可以达到MHz量级。
④扫描精度高:光学相控阵的扫描精度取决于控制电信号的精度,可以达到千分之一度量级以上。
⑤可控性好:光学相控阵的光束指向完全由电信号控制,在允许的角度范围内可以做到任意指向,可以在重点区域进行高密度的扫描。
⑥多目标监控:一个相控阵面可以分割为多个小模块,每个模块分开控制即可同时锁定监控多个目标。
但固态激光雷达也有它相应的缺点:
①扫描角度有限:根据上面推倒的公式,调节相位最多只能让中央明纹改变±60°左右,因此要实现全方位扫描,需在不同方向布置多个(至少前后两个)固态激光雷达。
②旁瓣问题:光栅衍射除了中央明纹外还会形成其他明纹,这一问题会让激光在最大功率方向以外形成旁瓣,分散激光的能量。
③加工难度高:光学相控阵要求阵列单元尺寸必须不大于半个波长,一般目前激光雷达的工作波长均在1微米左右,故阵列单元的尺寸必须不大于500nm。而且阵列密度越高,能量也越集中,这都提高了对加工精度的要求,需要一定的技术突破。
④接收面大、信噪比差:传统机械雷达只需要很小的接收窗口,但固态激光雷达却需要一整个接收面,因此会引入较多的环境光噪声,增加了扫描解析的难度。
转载于:https://www.cnblogs.com/biglucky/p/8059465.html