查找:折半查找、平衡二叉树、散列表(习题-1、5、6)二叉排序树(习题-2、3、4)

news2024/12/25 14:15:57

一个不知名大学生,江湖人称菜狗
original author: jacky Li
Email : 3435673055@qq.com

Time of completion:2023.1.1
Last edited: 2023.1.1

目录

查找:折半查找、平衡二叉树、散列表(习题-1、5、6)

第1关:折半查找的递归算法(算法设计题1)

任务描述

相关知识

编程要求

测试说明

参考代码

第2关:平衡二叉树的高度(算法设计题5)

任务描述

相关知识

编程要求

测试说明

参考代码

第3关:散列表关键字的插入和删除(算法设计题6)

任务描述

相关知识

编程要求

测试说明

参考代码

 查找:二叉排序树(习题-2、3、4)

第1关:二叉排序树判别(算法设计题2)

任务描述

相关知识

编程要求

测试说明

参考代码

第2关:不小于x的所有数据(算法设计题3)

任务描述

相关知识

编程要求

测试说明

参考代码

第3关:二叉排序树和查找(算法设计题4)

任务描述

相关知识

编程要求

测试说明

参考代码

作者有言


查找:折半查找、平衡二叉树、散列表(习题-1、5、6)

第1关:折半查找的递归算法(算法设计题1)

任务描述

写出折半查找的递归算法。

相关知识

折半查找。

编程要求

根据提示,在右侧编辑器Begin和End间补充代码,完成本关任务。

测试说明

平台会对你编写的代码进行测试:

测试输入(共3行,第1行为元素个数n;第二行为空格分隔的n个元素;第三行为待查找元素):

5

1 2 3 4 5 4

预期输出(共1行,待查元素所在位置):

4

参考代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <unordered_map>
#include <unordered_set>

#define IOS std::ios::sync_with_stdio(false)
#define inf 0x3f3f3f3f
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define NO cout << "NO" << endl;
//#define int long long
#define x first
#define y second
//#define cmp [&](PII a, PII b){ return a.y < b.y; }

const int N = 5e5+10, mod = 1e9+7, M = 1e7+5, K = 1e5+10, Z = 2e5+7;

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;

int n;

int BinSearch_Cur(int a[],int key,int low,int high)
{
	/***********************Begin**********************/
	low = 1,  high = n;
	while(low <= high)
	{
		int mid = (low + high) >> 1;
		if(key == a[mid]) return mid;
		else if(key < a[mid]) high = mid - 1;
		else low = mid + 1;
	}
	return 0;
	/*********************** End **********************/
}
int main()
{
	while(cin>>n)
	{
		if(n==0) break;
        int a[99], key;
        for(int i = 1; i <= n; i ++) cin>>a[i];
        cin >> key;								
        cout << BinSearch_Cur(a, key, 0, n - 1) << endl;	
	}
	return 0;
}

第2关:平衡二叉树的高度(算法设计题5)

任务描述

本关任务:一棵平衡二叉树的每个结点都标明了平衡因子b,编写算法求解该平衡二叉树的高度。

相关知识

平衡二叉树

编程要求

根据提示,在右侧编辑器Begin和End间补充代码,完成所要求任务。

测试说明

平台会对你编写的代码进行测试:

测试输入(共1行字符串,为先序构建二叉树的序列):

110###0##

预期输出(共1行,为二叉树高度):

3

参考代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <unordered_map>
#include <unordered_set>

#define IOS std::ios::sync_with_stdio(false)
#define inf 0x3f3f3f3f
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define NO cout << "NO" << endl;
//#define int long long
#define x first
#define y second
//#define cmp [&](PII a, PII b){ return a.y < b.y; }

const int N = 5e5+10, mod = 1e9+7, M = 1e7+5, K = 1e5+10, Z = 2e5+7;

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;

typedef struct BiTNode
{
	char data;
	struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

void CreatBiTree(BiTree &T)
{  
	//按先序次序输入二叉树中结点的值 创建二叉链表表示的二叉树 
    char ch;
	cin>>ch;
	if(ch=='#') T = NULL;         //递归结束 空树 
	else{                         //递归创建二叉树 
		T = new BiTNode;          //生成根节点
		T->data = ch;             //根结点数据域置ch 
		CreatBiTree(T->lchild);   //递归创建左子树 
		CreatBiTree(T->rchild);   //递归创建右子树 
	} 
} 
int Depth(BiTree T)
{
	/***********************Begin**********************/
	if(!T) return 0;
	else if(!(T -> lchild) && !(T -> rchild)) return 1;
	return Depth(T -> lchild) >= Depth(T -> rchild) ? Depth(T -> lchild) + 1 : Depth(T -> rchild) + 1;
	/*********************** End **********************/
}
int main()
{
	BiTree T;
	CreatBiTree(T);
	cout<<Depth(T)<<endl;
	return 0;
}

第3关:散列表关键字的插入和删除(算法设计题6)

任务描述

本关任务:创建散列表,并在其中插入n个关键字;然后删除指定关键字K。设散列函数为H,解决冲突的方法为链地址法。

相关知识

散列表

编程要求

根据提示,在右侧编辑器Begin和End间补充代码,完成所要求任务。

测试说明

平台会对你编写的代码进行测试,以下为两个测试用例的例子。

测试输入(共3行:第1行是关键字的个数n;第二行为空格分隔的n个关键字;第3行为待删除的关键字K):

 预期输出(共2组:第1组为插入完成后的地址-关键字对集,第2组为删除K之后的地址-关键字对集如下所示):

参考代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <unordered_map>
#include <unordered_set>

#define IOS std::ios::sync_with_stdio(false)
#define inf 0x3f3f3f3f
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define NO cout << "NO" << endl;
//#define int long long
#define x first
#define y second
//#define cmp [&](PII a, PII b){ return a.y < b.y; }

const int N = 5e5+10, mod = 1e9+7, M = 1e7+5, K = 1e5+10, Z = 2e5+7;

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;

#define LENGTH 7

typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode, *LinkList;

LinkList HT[LENGTH];

int H(int data)
{
	return data % LENGTH;
}

bool Insert_K( )
{
	/***********************Begin**********************/
	int n; cin >> n;
	int res = H(n);
	LNode *p = HT[res];
	while(p -> next)
		if(p -> next -> data == n) return false;
		else p = p -> next;
//	LNode *p = HT[res] -> next;            // 被 segmentation fault 啦,气死我啦…… 
//	while(p)
//		if(p -> data == n) return false;
//		else p = p -> next;
	LNode *s = new LNode;
	s -> data = n; 
	s -> next = p -> next;
	p -> next = s;
//	p -> data = n;
	return true;
	/*********************** End **********************/
}
bool Delete_K(int data)
{
	/***********************Begin**********************/
	int res = H(data);
	LNode *p = HT[res];
	while(p -> next)
		if(p -> next -> data == data) 
		{
			LNode *s = p -> next;
			p -> next = s -> next;
			delete s;
			return true;
		}
		else if(p -> next -> data != data) p = p -> next;
	return false;
	/*********************** End **********************/
}
void Output()
{//输出数据
	for(int i=0;i<LENGTH;i++)
	{
		cout<<i<<":";             		//输出散列地址
		LinkList p=HT[i]->next;  		//p初始化为链表的首元结点
		while(p)
		{
			cout<<p->data;
			p=p->next;
			if(p) cout<<" ";
		}
		cout<<endl;
	}
}
void initHash()
{
	for(int i=0;i<LENGTH;i++)
	{
		HT[i]=new LNode;
		HT[i]->next=NULL;
	}
}
int main()
{
	initHash();
	int n,ndel;
	cin>>n;
	for(int i=0;i<n;i++)
		Insert_K();
	Output();
	cin>>ndel;
	Delete_K(ndel);
	Output();
	return 0;
}

 查找:二叉排序树(习题-2、3、4)

第1关:二叉排序树判别(算法设计题2)

任务描述

写一个判别给定二叉树是否为二叉排序树的算法。

相关知识

二叉排序树。

编程要求

根据提示,在右侧编辑器Begin和End间补充代码,完成本关任务。

测试说明

平台会对你编写的代码进行测试:

测试输入(共一行):

ba##c##

预期输出:

YES

参考代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <unordered_map>
#include <unordered_set>

#define IOS std::ios::sync_with_stdio(false)
#define inf 0x3f3f3f3f
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define NO cout << "NO" << endl;
//#define int long long
#define x first
#define y second
//#define cmp [&](PII a, PII b){ return a.y < b.y; }

const int N = 5e5+10, mod = 1e9+7, M = 1e7+5, K = 1e5+10, Z = 2e5+7;

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;

typedef struct BiTNode
{
   char data; 
   struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

void CreateBiTree(BiTree &T,char a[],int &i)
{//先序建立二叉树
	/***********************Begin**********************/
	if(a[i] == '#')  T = NULL;			
	else
	{							
		T = new BiTNode, T -> data = a[i];					
		CreateBiTree(T -> lchild, a, ++ i);	
		CreateBiTree(T -> rchild, a, ++ i);
	}
	/*********************** End **********************/
}

BiTree pre=NULL;									//前驱指针

void JudgeBST(BiTree T,int &flag)
{//判断二叉树T是否是二叉排序树,flag初值为1
	if(T!=NULL&&flag)
	{ 
		/***********************Begin**********************/
		JudgeBST(T -> lchild, flag);
		if (!pre) pre = T;
		else if (pre -> data < T -> data) pre = T;
		else flag = false;
		/*********************** End **********************/
	}
	else return;
	JudgeBST(T -> rchild, flag);
}
int main()
{
	char a[99];
	//输入先序序列
	cin>>a;
	if(strcmp(a,"#")!=0){
		int i=-1;
		int flag=1;
		BiTree T;
		CreateBiTree(T,a,++i);
		JudgeBST(T,flag);
		if(flag)
			cout<<"YES"<<endl;
		else
			cout<<"NO"<<endl;
	}
	return 0;
}

第2关:不小于x的所有数据(算法设计题3)

任务描述

本关任务:已知二叉排序树采用二叉链表存储结构,根结点的指针为T,链结点的结构为(lchild, data, rchild),其中lchild、rchild分别指向该结点左、右孩子的指针,data域存放结点的数据信息。请写出递归算法,从小到大输出二叉排序树中所有数据值≥x的结点的数据。要求先找到第一个满足条件的结点后,再依次输出其他满足条件的结点。

相关知识

二叉排序树

编程要求

根据提示,在右侧编辑器Begin和End间补充代码,完成所要求任务。

测试说明

平台会对你编写的代码进行测试:

测试输入(共三行,第一行为列表元素个数n;第二行为以空格分隔的列表中的元素;第三行为x的值):

5 1 3 4 2 5 3

预期输出(共两行,第一行为排序后的列表;第二行为不小于x的所有元素)

1 2 3 4 5 3 4 5

参考代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <unordered_map>
#include <unordered_set>

#define IOS std::ios::sync_with_stdio(false)
#define inf 0x3f3f3f3f
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define NO cout << "NO" << endl;
//#define int long long
#define x first
#define y second
//#define cmp [&](PII a, PII b){ return a.y < b.y; }

const int N = 5e5+10, mod = 1e9+7, M = 1e7+5, K = 1e5+10, Z = 2e5+7;

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;

typedef struct BSTNode
{//二叉排序树的二叉链表存储表示
	int data;
	struct BSTNode *lchild,*rchild;
}BSTNode,*BSTree;

void InsertBST(BSTree &T,int e){
	/***********************Begin**********************/
	if(!T)
	{
		BSTNode *S = new BSTNode;
		S  -> data = e, S -> lchild = S -> rchild = NULL, T = S;
	}
    else if(e < T -> data) InsertBST(T -> lchild, e);
    else InsertBST(T -> rchild, e);
	/*********************** End **********************/
}
void Print(BSTree T)
{//中序输出以T为根的二叉排序树的所有结点
	/***********************Begin**********************/
	if(T)
	{
	    Print(T -> lchild);
        cout << T -> data << ' ';
	    Print(T -> rchild);
	}
	/*********************** End **********************/	
}
void PrintAllx(BSTree T,int x)
{//在二叉排序树T中,查找值≥x的结点并输出
	/***********************Begin**********************/
	if(T == NULL) return;
	PrintAllx(T -> lchild, x);
	if(T -> data >= x) cout << T -> data << ' ';
	PrintAllx(T -> rchild, x);
	/*********************** End **********************/
}
int main()
{
	BSTree T=NULL;
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int e;
		cin>>e;
		InsertBST(T,e);
	}
	Print(T);
	cout<<endl;
	int x;
	cin>>x;
	PrintAllx(T,x);
}

第3关:二叉排序树和查找(算法设计题4)

任务描述

本关任务:已知二叉排序树T的结点形式为(llink, data, count, rlink),从空树开始,依次在树中查找n个结点元素,若存在,则记数(count)加1;否则,作为一个新结点插入树中,插入后仍为二叉排序树,写出其非递归算法。

相关知识

二叉排序树(Binary Sort Tree)又称二叉查找树,它是一种对排序和查找都很有用的特殊二叉树。 1.二叉排序树的定义二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)它的左、右子树也分别为二叉排序树。 二叉排序树是递归定义的。由定义可以得出二叉排序树的一个重要性质:中序遍历一棵二叉树时可以得到一个结点值递增的有序序列。

编程要求

根据提示,在右侧编辑器Begin和End间补充代码,完成所要求任务。

测试说明

平台会对你编写的代码进行测试,以下为两个测试用例的例子。

测试输入(共2行:第1行是元素的个数n;第二行为空格分隔的n个元素):

6 1 3 4 2 5 3

预期输出(共2行:第1行为排序后的各元素;第2行为对应每个元素的计数):

1 2 3 4 5 1 1 2 1 1

参考代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <unordered_map>
#include <unordered_set>

#define IOS std::ios::sync_with_stdio(false)
#define inf 0x3f3f3f3f
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define NO cout << "NO" << endl;
//#define int long long
#define x first
#define y second
//#define cmp [&](PII a, PII b){ return a.y < b.y; }

const int N = 5e5+10, mod = 1e9+7, M = 1e7+5, K = 1e5+10, Z = 2e5+7;

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;

typedef struct BiTNode
{
	int data;
	int count;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void SearchBST(BiTree &T,int X)
{
	/***********************Begin**********************/
	BiTNode *s = new BiTNode;
	s -> data = X, s -> count = 1, s -> lchild = s -> rchild = NULL;
	if(T == NULL) T = s;
	else
	{
		BiTNode *r = T, *p = NULL;
		while(r)
		{
			if(r -> data == X) {r -> count ++; return;}
			else
			{
				p = r;
				if(r -> data > X) r = r -> lchild;
				else r = r -> rchild;
			}
		}
		if(p -> data > X) p -> lchild = s; 
		else p -> rchild = s; 
	}
	/*********************** End **********************/
}
void PrintData(BiTree T)
{//中序遍历输出二叉树T
    /***********************Begin**********************/
	if(T)
	{
		PrintData(T -> lchild);
        cout << T -> data << ' ';
		PrintData(T -> rchild);
    }
    /*********************** End **********************/
}
void PrintCount(BiTree T)
{//中序遍历输出二叉树T计数
    /***********************Begin**********************/
	if(T)
	{
	    PrintCount(T -> lchild);
	    cout << T -> count << ' ';
	    PrintCount(T -> rchild);
	}
    /*********************** End **********************/
}
int main()
{
	int n;
	cin>>n;
	int e;        			//变量e用于接收输入数据
  	BiTree T=NULL;
	for(int i=0;i<n;i++)
	{//基于非递归的二叉排序树的结点的查找和插入
		cin>>e;
		SearchBST(T,e);
	}
	PrintData(T);			//中序遍历输出二叉树T结点
	cout<<endl;
	PrintCount(T);   		//中序遍历输出二叉树T计数
	cout<<endl;
	return 0;
}

作者有言

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

04.spring源码循环依赖终极讲解

1.Spring怎么解决循环依赖 我们都知道&#xff0c;单例Bean初始化完成&#xff0c;要经历三步&#xff1a; 注入就发生在第二步&#xff0c;属性赋值&#xff0c;结合这个过程&#xff0c;Spring 通过三级缓存解决了循环依赖&#xff1a; 一级缓存 : Map<String,Object>…

PUCCH传输UCI信息

上报HARQ-ACK 时序 传输HARQ-ACK信息的时序不再像4G那样固定&#xff0c;而是由基站侧配置给UE。有下面几种情况&#xff1a; 如果UE收到的是DCI format 1_0&#xff0c;其中的字段’PDSCH-to-HARQ_feedback timing indicatior’指示HARQ-ACK与PDSCH的时序关系&#xff0c;该…

Linux之孤儿进程、进程优先级、环境变量

本章目录1.孤儿进程2.状态优先级3.环境变量1.孤儿进程 父进程如果提前退出&#xff0c;那么子进程后退出&#xff0c;进入Z之后&#xff0c;那该如何处理&#xff1f; 父进程先退出&#xff0c;子进程还在&#xff0c;子进程就称之为“孤儿进程”。 孤儿进程被1号init进程&am…

移动安全APT事件总结及防御解决方案探讨

声明 本文是学习移动安全总结 2019. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 2019年各地移动APT事件总结 2019年世界依旧不太平&#xff0c;在表面平静的背后是暗流涌动。大规模军事冲突不会发生的当下&#xff0c;因利益&#xff0c;…

Python全栈开发(一)——环境搭建和入门

今天是2023年的第一天&#xff0c;接下来的一个月里&#xff0c;我将持续更新关于python全栈开发的相关知识&#xff0c;前面一段时间都是基础语法。主要分成四大块&#xff1a;基础、面向对象、MYSQL数据库、Django框架。话不多说&#xff0c;进入到今天的主题。 1.文档和工具…

聊聊最适合程序员的画图工具

画图工具 没问题&#xff0c;直接坦白讲&#xff0c;我用了 2 年的画图工具是&#xff1a;draw.io。 我的图解文章里的图片全是在 draw.io 这个工具画的&#xff0c;写了那么久的图解文章&#xff0c;再加上我工作中也有画图的习惯&#xff0c;累计也有在上面画了接近 1000 张…

树形压缩DP——没有上司的舞会

树形压缩DP——没有上司的舞会一、问题描述二、DFS暴搜1、算法思路2、代码实现三、DP做法一、问题描述 二、DFS暴搜 1、算法思路 这道题其实最容易想到的是暴力DFS&#xff0c;然后选出一个最大值。我们平时会在DFS的形参中设置一个变量表示子树的根。但是今天这道题还涉及到…

mysql的事务和锁

【MySQL事务和锁】 学习原文&#xff1a;https://blog.csdn.net/zly03/article/details/127170995 事务四大特性&#xff1a;原子性、一致性、隔离性、持久性&#xff0c;简称ACID MySQL中支持3种不同的存储引擎&#xff1a; MyISAM存储引擎、Memory存储引擎、和InnoDB存储引…

CMake使用外部动态库/静态库和头文件

CMake使用外部动态库/静态库和头文件一、准备工作二、新建一个新的CMake工程三、开始构建四、为target添加共享库五、链接静态库一、准备工作 在博文《使用CMake构建静态库和动态库》中已经介绍了libhello动态库的构建和安装&#xff0c;现在我们看看如何使用这个外部动态库。…

iOS 15.0+ 中 SwiftUI 顶部或底部悬浮功能小面板的极简实现

功能需求 我们有时需要在 App 主视图的顶部或底部固定悬浮放置一个功能视图: 如上图所示,我们将一个列表项目输入小面板按需放在主视图的顶部或底部: 当放置在顶部时,解决了其对导航栏(NavigationView)中 toolbar 内容的遮挡问题;当放置在底部时,考虑到了其对列表最后…

spring boot 实现搜索引擎的设计思想

目录 实现思路 索引模块 预处理 对文档进行分词 搜索模块 实现思路 索引构建模块 搜索模块 数据库模块 索引模块 对于搜索一个东西&#xff0c;我们很自然的能想到遍历去查找。比如我要查找一本书叫 《红楼梦》&#xff0c;那么我直接在所有结果中进行遍历查找&#xff…

druid解析-过滤器详解

druid支持过滤器&#xff0c;可以在获取连接或者调用连接对象的方法时&#xff0c;先调用过滤器&#xff0c;之后再执行底层方法&#xff0c;比如DruidDataSource的getConnection()方法&#xff1a; public DruidPooledConnection getConnection(long maxWaitMillis) throws SQ…

网络安全一哥的奇安信发布了全球高级可持续威胁年度报告 值得学习

声明 本文是学习全球高级持续性威胁 APT 2021年度报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 中国境内高级持续性威胁综述 基于中国境内海量DNS域名解析和奇安信威胁情报中心失陷检测&#xff08;IOC&#xff09;库的碰撞分析&…

9_1、Java基本语法之常用类String、StringBuffer、StringBuilder的使用

一、String的使用及常用方法 1、概述 String:表示字符串&#xff0c;使用""引起来。 1.1、String类是声明为final的&#xff0c;不可被继承。 1.2、String类实现了Serializable接口&#xff0c;表示字符串支持序列化。 …

【王道操作系统】2.1.3 原语实现对进程的控制

原语实现对进程的控制 文章目录原语实现对进程的控制1.什么是进程控制2.原语实现对进程的控制3.回忆进程的组织4.进程控制大致图解5.进程控制原语的相同点6.进程控制的五种原语1.什么是进程控制 2.原语实现对进程的控制 3.回忆进程的组织 4.进程控制大致图解 这里说明一下调度和…

MySQL【AUTO_INCREMENT 】自增列

使用案例场景再现&#xff1a; 创建一个为test的数据库&#xff0c;为数据库test创建一个数据表student &#xff0c;其中包含的字段有 id name sex&#xff0c;admission_time,其中要求student表中的人员id必须连续排列。 create database test use test cr…

SCI论文解读复现【NO.1】基于Transformer-YOLOv5的侧扫声纳图像水下海洋目标实时检测

此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c;帮助…

三旗舰焕新发布引领品牌向上 长城汽车登陆2022广州车展

近日&#xff0c;长城汽车携哈弗、魏牌、欧拉、坦克、长城炮以及沙龙六大品牌&#xff0c;登陆第二十届广州国际汽车展览会&#xff08;以下简称“2022广州车展”&#xff09;。魏牌全新旗舰蓝山DHT-PHEV、坦克500 PHEV长续航版、大型高性能豪华皮卡山海炮等车型联袂而至&#…

创建静态库存文件 ansible(3)

目录 创建一个名为/home/student/ansible/inventory的静态库存文件如下所示&#xff1a; &#xff08;1&#xff09;node1是dev主机组的成员 &#xff08;2&#xff09;node2是test主机组的成员 &#xff08;3&#xff09;node1和node2是prod主机组的成员 &#xff08;4&am…

【Qt】控件——QPlainTextEdit使用简单介绍:常用方法及信号、逐行读取编辑框的内容、使用自带的快捷菜单、作为日志显示窗口

Qt控件-QPlainTextEdit使用 参考链接&#xff1a; https://blog.csdn.net/seniorwizard/article/details/109726147; https://blog.csdn.net/seniorwizard/article/details/109726147 文章目录Qt控件-QPlainTextEdit使用QPlainTextEdit控件简单介绍1. 逐行读取文本编辑框的内容…