插入与冒泡排序(C++)

news2024/9/22 3:43:19

\一、插入排序

1 简介

插入排序,也称为直接插入排序,其排序思想和我们平时打扑克牌时排序类似。

2 算法步骤

将第一个元素看作已排序序列,第二个到最后一个看作未排序序列。

第二个元素,与之前已排序号的序列进行对比,插入正确的位置(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

循环处理剩下的未排序序列。

效果图:

2.png

3 复杂度

当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较N- 1次,最优时间复杂度为O(n)

最坏的情况是待排序数组是逆序的,此时需要比较次数最多,总次数记为:1+2+3+…+N-1,所以,插入排序最坏情况下的时间复杂度为O(n^2)

空间复杂度为O(1)

4 稳定性

稳定的,数据的相对顺序不会发生改变。

5 代码实现:略

二、冒泡排序

1 简介

冒泡排序(Bubble sort),是一种简单的排序算法。

它重复地循环要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

2 算法步骤

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

效果图:

1.png

3 复杂度

若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数 和记录移动次数 均达到最小值: 所以,冒泡排序最好的时间复杂度为O(n)。

若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-i次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:

冒泡排序的最坏时间复杂度为O(n^2)

综上,因此冒泡排序总的平均时间复杂度为O(n^2)

空间复杂度为O(1)

4 稳定性

冒泡排序是稳定排序,不会改变数据的大小相对位置;

5 代码实现:略

第1题     插入排序(程序填空)

输入N个整数,使用插入排序法从小到大输出。

输入格式

第一行1个正整数:N,范围在[1,1000]。
第二行N个整数,每个整数范围在[0,1000000]。

输出格式

一行N个从小到大的整数。

输入/输出例子1

输入:


5 3 6 1 

输出:

1 3 5 6 

输入/输出例子2

输入:

4
5 5 1 9

输出:

1 5 5 9

第1空:

a[i]

第2空:

a[k]<temp

第3空:

a[j+1]=a[j]

第1题     冒泡排序(程序填空)

输入N个整数,使用冒泡排序法从小到大输出。

输入格式

第一行1个正整数:N,范围在[1,1000]。
第二行N个整数,每个整数范围在[0,1000000]。

输出格式

一行N个从小到大的整数。

输入/输出例子1

输入:


5 3 6 1 

输出:

1 3 5 6 

输入/输出例子2

输入:

4
5 5 1 9

输出:

1 5 5 9

 第1空

n-i

第2空

a[j]>a[j+1]

第3空

a[j]

第4空

a[j+1]

第1题     插入排序 查看测评数据信息

输入N个整数,使用插入排序法从小到大输出。

输入格式

第一行1个正整数:N,范围在[1,1000]。
第二行N个整数,每个整数范围在[0,1000000]。

输出格式

一行N个从小到大的整数。

输入/输出例子1

输入:


5 3 6 1 

输出:

1 3 5 6 

输入/输出例子2

输入:

4
5 5 1 9

输出:

1 5 5 9

 

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,k,temp,a[100005];
int main(){    
    cin>>n;
    for(i=1;i<=n;i++)cin>>a[i];
    for(i=2;i<=n;i++){
        temp=a[i];
        k=1;
        while(a[k]<temp&&k<i){
            k++;
        }
        for(j=i-1;j>=k;j--){
            a[j+1]=a[j];
        }
        a[k]=temp;
    }
    for(i=1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}

第2题     冒泡排序 查看测评数据信息

输入N个整数,使用冒泡排序法从小到大输出。

输入格式

第一行1个正整数:N,范围在[1,1000]。
第二行N个整数,每个整数范围在[0,1000000]。

输出格式

一行N个从小到大的整数。

输入/输出例子1

输入:


5 3 6 1 

输出:

1 3 5 6 

输入/输出例子2

输入:

4
5 5 1 9

输出:

1 5 5 9

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,a[100005];
int main(){
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>a[i];
    }
    for(i=1;i<n;i++){
        for(j=1;j<=n-i;j++){
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
            }
        }
    }
    for(i=1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    
    return 0;
}

第3题     排名(rank) 查看测评数据信息

期中考试后,陈老师想对同学们的成绩进行排名。共有 n 名同学,按成绩从高到低进行排名,同分的同学排名相同。陈老师希望你能帮他把名次排出来。

输入格式

第一行一个正整数,n。

第二行 n 个用空格隔开的范围为[0..100]的整数,表示 n 名同学的成绩。

输出格式

n 行,每行两个正整数,分别表示一个成绩和该成绩的排名,从高到低的输出。

输入/输出例子1

输入:

10

89 83 88 84 85 88 87 85 90 88

输出:

90 1

89 2

88 3

88 3

88 3

87 6

85 7

85 7

84 9

83 10

样例解释

【数据范围】

100%的数据 1<=n<=100

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,k,temp,a[100005],b[100005];
int main(){
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>a[i];
    }
    for(i=1;i<n;i++){
        for(j=1;j<=n-i;j++){
            if(a[j]<a[j+1]){
                swap(a[j],a[j+1]);
            }
        }
    }
    for(i=1;i<=n;i++){
        b[i]=i;
    }
    for(i=1;i<n;i++){
        if(a[i]==a[i+1]){
            b[i+1]=b[i];
        }
    }
    for(i=1;i<=n;i++){
        cout<<a[i]<<" "<<b[i]<<'\n';
    }
    return 0;
}

第4题     交换次数 查看测评数据信息

输入N个整数,如果每次只能交换相邻的2个数,要把数组从小到大排序,至少需要交换几次?

输入格式

第一行1个正整数:N,范围在[1,1000]。
第二行N个整数,每个整数范围在[0,1000000]。

输出格式

一行N个从小到大的整数。

输入/输出例子1

输入:


5 3 6 1 

输出:

4

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,a[100005],s;
int main(){
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>a[i];
    }
    for(i=1;i<n;i++){
        for(j=1;j<=n-i;j++){
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
                s++;
            }
        }
    }
    cout<<s;
    return 0;
}

第5题     兔子 查看测评数据信息

明明家养了N只兔子,边上种植了很多胡萝卜。平时兔子都被关在一个大笼子里,每天明明喂每只兔子3根胡萝卜。
某天饿疯了的兔子们咬坏了笼子门,跑到地里尽情地吃起胡萝卜。每只兔子的“吃货值”不一样,已知第i只兔子每分钟吃Ei个胡萝卜。
明明1分中后发现了情况,急忙开始捉拿这些兔子,已知明明每分钟可以捉一只,请问明明怎样捉才能使得被兔子吃最少的胡萝卜。计算出被兔子吃最少胡萝卜的个数。
例如:N=2, E1=4,E2=5;明明第1个捉第2个兔子(这个兔子已经吃了5根胡萝卜),第2个捉第1个兔子(这个兔子已经吃了8根胡萝卜),共被兔子吃了13根胡萝卜。

输入格式

第一行: 1 个正整数 N。N的范围[1…10000]
第二行 N 个正整数: 表示 N 只兔子每分钟可以吃的胡萝卜数,每个数的范围[1…1000000]。

输出格式

一个整数,表示最少要被吃掉多少胡萝卜。

输入/输出例子1

输入:


2 1 3 

输出:

10 

#include<bits/stdc++.h>
using namespace std;
bool f(int a,int b){
	return a>b;
}
long long n,a[100005],h=0,t=0,s=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+1+n,f);
    for(int i=1;i<=n;i++){
        t++;
	    s=s+a[i]*t;	
    }
    cout<<s;
    return 0;
}

第6题     第K小数 knumber 查看测评数据信息

现有n个正整数,n<=10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k<=1000,正整数均小于30000。 

输入格式

第一行为n和k,第二行开始为n个正整数的值,整数间用空格隔开。

输出格式

第k个最小正整数的值;若无解,则输出“NO RESULT”。

输入/输出例子1

输入:

10 3 
1 3 3 7 2 5 1 2  4 6

输出:

3

#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],k;
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int len=unique(a+1,a+n+1)-a;
    if(k<len)cout<<a[k];
    else cout<<"NO RESULT";
    return 0;
}

第7题     火柴 (GCOI2015五4) 查看测评数据信息

有N根火柴,第i根火柴的长度是Li。小明很喜欢正方形,所以小明希望用这些火柴拼出尽量多的正方形,但要同时满足如下条件:

1、一根火柴最多只能用在一个正方形中。

2、组成正方形的四根火柴,长度必须都相同。

给出N根火柴的长度,你的任务是计算:最多可以拼出多少个正方形?

输入格式

第一行,一个整数N。
第二行,N个整数,第i个整数是Li。

输出格式

一个整数,表示最多能拼出的正方形的数量

输入/输出例子1

输入:

7
1  1  2  2  1  1  2

输出:

1

输入/输出例子2

输入:

20
1  2  3  4  1  2  3  4  1  2  3  1  2  3  4  1  2  3  3  3

输出:

3

样例解释

样例1解释:只能拼出1个正方形,正方形的边长是1。样例2解释:能拼出3个正方形,正方形的边长是1、2、3。

【数据规模】 对于60%的数据, 4 <= N <= 50, 1 <= Li <= 1000。 对于100的数据,4 <= N <= 5000,1 <= Li <= 1000000000。

#include<bits/stdc++.h>
using namespace std;
long long int a[500005],i,j,n,s=0,sum,b[500005];
int main(){
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
        b[i]=a[i];
    }
    sort(b,b+n);
    long long m=0,k=1;
    while(k<n){
        if(b[k]!=b[m]) b[++m]=b[k];
        k++;
    }
    for(i=0;i<m+1;i++){    
		sum=0;
        for(j=0;j<n;j++){
            if(b[i]==a[j])sum++;
        }
        s=sum/4+s;
    }
    printf("%d",s);
    return 0;

}

第8题     奖学金(scholar) 查看测评数据信息

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。 

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是: 

7 279

5 279 

这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是 279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是: 

5 279 

7 279 

则按输出错误处理,不能得分。

输入格式

输入数据包含n+1行: 

第1行为一个正整数n,表示该校参加评选的学生人数。 

第2到n+1行,每行有3个用空格隔开的数字,每个数字都在O到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为l~n (恰好是输入数据的行号减1)。 

所给的数据都是正确的,不必检验。

输出格式

输出数据共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。

输入/输出例子1

输入:

6

90  67  80

87  66  91

78  89  91

88  99  77

67  89  64

78  89  98 

输出:

6  265

4  264

3  258

2  244

1  237

输入/输出例子2

输入:

8

80  89  89

88  98  78

90  67  80

87  66  91

78  89  91

88  99  77

67  89  64

78  89  98

输出:

8  265

2  264

6  264

1  258

5  258

样例解释

【限制】

50%的数据满足:各学生的总成绩各不相同;

100%的数据满足: 6≤n≤300。

#include<bits/stdc++.h>
using namespace std;
struct node{
	int chinese,maths,English,zongfen,id;
}a[330];
int main(){
    int n,i,j;
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>a[i].chinese>>a[i].maths>>a[i].English;
        a[i].id=i;
        a[i].zongfen=a[i].chinese+a[i].maths+a[i].English;
    }
    for(i=n-1;i>=1;i--){
        for(j=1;j<=i;j++){    
			if(a[j].zongfen<a[j+1].zongfen)swap(a[j],a[j+1]);
        	else if((a[j].zongfen==a[j+1].zongfen)&&(a[j].chinese<a[j+1].chinese))swap(a[j],a[j+1]);    
        	else if((a[j].zongfen==a[j+1].zongfen)&&(a[j].chinese==a[j+1].chinese)&&a[j].id>a[j+1].id)swap(a[j],a[j+1]);
        }
    }
    for(i=1;i<=5;i++)cout<<a[i].id<<" "<<a[i].zongfen<<endl;
    return 0;
}

第1题     分数线划定 (score) 查看测评数据信息

世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

 现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

提示:向下取整,即把小数部分去掉。例如:4.3和4.8向下取整都是4。

输入格式

第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。

 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。

输出格式

第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

输入/输出例子1

输入:

6 3

1000 90

3239 88

2390 95

7231 84

1005 95

1001 88

输出:

88 5

1005 95

2390 95

1000 90

1001 88

3239 88

#include<bits/stdc++.h>
using namespace std;
long long n,m,b[1000550],a[1000550],i,j,sum,ans=0;
int main(){
    cin>>n>>m;
    for(i=0;i<n;i++){
    	cin>>b[i]>>a[i];
    }
    for(i=1;i<=n-1;i++){
        for(j=0;j<=n-i;j++){
            if(a[j]<a[j+1]){
                swap(a[j],a[j+1]);
                swap(b[j],b[j+1]);
            }
            if(a[j]==a[j+1]){
                if(b[j]>b[j+1]){
                    swap(a[j],a[j+1]);
                    swap(b[j],b[j+1]);
                }
            }
        }
    }
    m=double(m*1.5);
    sum=a[m-1];
    for(i=0;i<n;i++){
    	if(a[i]>=sum)ans++;
        else break;
    }
    cout<<sum<<" "<<ans<<'\n';
    for(i=0;i<ans;i++){
    	cout<<b[i]<<" "<<a[i]<<'\n';
    }
    return 0;

}

第2题     2015GCOI六5 最大数 查看测评数据信息

计时器游戏结束后,晨晨的同学明明取了其中的N个计时器设计出拼数字游戏:明明和晨晨各自把N个计时器排成一行,看谁拼出的数最大。例如:有N=3个计时器,上面数字分别是31,3,331,两人拼的方案分别是:

image.png

明明拼的数字是333131,晨晨拼的数字是331313,显然明明赢。明明掌握了拼出最大值的核心算法,晨晨下决心也要研究。

输入格式

第一行:1个整数N。

第二行N个整数:表示N个计时器上的数。

输出格式

一个整数,表示拼成的最大数字。

输入/输出例子1

输入:

3
31  3  331

输出:

333131

输入/输出例子2

输入:

8

73 1 3 776 12 225 4 936

输出:

9367767343225121

样例解释

30%的数据,n<=10,每个数<10^3
50%的数据,n<=100
100%的数据,n<=1000,每个数<10^200 

#include<bits/stdc++.h>
using namespace std;
string a[100005];
int n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			if(a[i]+a[j]<a[j]+a[i]){
				swap(a[i],a[j]);  
			}
		}
	}
	for(int i=0;i<n;i++){
		cout<<a[i];
	}
	return 0;
}

第3题     拯救花园(nhoixj2013) 查看测评数据信息

一天,晨晨发现自己的n(2≤n≤100)只兔子跑到自己的花园里面,它们在尽情的吃着她的宝贝花卉。晨晨看在眼里痛在心里,她现在只能把兔子逐个的抓回笼子里面。而送每只兔子回去的时间都不同,例如送第i只兔子回去需要ti(1≤ti≤100)单位时间,那么晨晨送第i只兔子来回共需要花费2*ti单位时间,另外每一只兔子单位时间的破坏力都不同,例如第i只兔子单位时间内破坏di (1≤di≤100)朵花。

现在的问题是,晨晨如何安排送这n只兔子回笼子才能使这些兔子的破坏最小。

输入格式

第一行:一个整数n(1≤n≤100);

接着有n行,每行两个空格分开的整数ti di,分别代表第i只兔子的送回去的时间,和单位时间破坏力。

输出格式

一行:一个整数,代表这些兔子破坏多少花卉。

输入/输出例子1

输入:

6
3 1
2 5
2 3
3 2
4 1
1 6

输出:

86

样例解释

样例解释:

    晨晨送兔子回去的顺序分别为:6, 2, 3, 4, 1, 5。其中先送第6只兔子回去,剩余兔子破坏(1+5+3+2+1)*2=24朵花;送第2只兔子回去,剩余兔子破坏(1+3+2+1)*4=28朵花;以此类推,送第3、4、1只兔子回去剩余兔子的破坏分别为16、12和6朵花;最后送第5只兔子回去的时候,没有兔子在花园里面了,所以破坏0朵花,最后总共破坏24 + 28 + 16 + 12 + 6 = 86朵花。

#include<bits/stdc++.h> 
using namespace std;
int n,x,s; 
struct str{
	int s1,s2;
}a[1000005];
bool f(str q,str p){
	return p.s1*q.s2<q.s1*p.s2;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].s2>>a[i].s1;
	}
	for(int i=1;i<=n;i++){
		s+=a[i].s1;
	}
	sort(a+1,a+1+n,f);
	for(int i=1;i<=n;i++){
		s-=a[i].s1;
		x+=s*a[i].s2*2;	
	}	
	cout<<x;
	return 0;
} 

 制作不易,点个三连(#^.^#)

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

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

相关文章

【我的 PWN 学习手札】tcache stash with fastbin double free —— tcache key 绕过

参考看雪课程&#xff1a;PWN 探索篇 前言 tcache key 的引入使得 tcache dup 利用出现了困难。除了简单利用 UAF 覆写 key 或者House Of Karui 之外&#xff0c;还可以利用 ptmalloc 中的其他机制进行绕过。 一、Tcache Stash with Fastbin Double Free 之前是 double free …

软考中级软件设计师——知识产权学习记录

软考中级软件设计师——知识产权 著作权人身权著作财产权著作权侵权行为 计算机软件著作权基本知识计算机软件著作权侵权 专利地域性与专利权申请基本知识专利权侵权 职务作品委托开发商业秘密权基本知识商业秘密侵权 商标权与商标注册基本知识商标权侵权 著作权 著作权也称为…

Spring的任务调度

Spring的任务调度 1.概述 Spring框架为任务调度提供了专门的解决方案。在Spring框架的org.springframework.scheduling包中&#xff0c;通过对JDK 的ScheduledExecutorService接口的实例进行封装&#xff0c;对外提供了一些注解和接口&#xff0c;为开发者处理定时任务提供了…

网安面试会问到的:http的长连接和短连接

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

探索 Python 的火焰:Fire 库的神秘力量

文章目录 &#x1f525; 探索 Python 的火焰&#xff1a;Fire 库的神秘力量第一部分&#xff1a;背景介绍第二部分&#xff1a;Fire 库是什么&#xff1f;第三部分&#xff1a;如何安装 Fire&#xff1f;第四部分&#xff1a;简单库函数使用方法第五部分&#xff1a;场景应用第…

32.递归、搜索、回溯之floodfill算法

0.简介 1.图像渲染 . - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {int[] dx { 0, 0, 1, -1 };int[] dy { 1, -1, 0, 0 };int m, n;int prev;public int[][] floodFill(int[][] image, int sr, int sc, int color) {if (image[sr][sc]…

yolov5足球运动分析-速度分析-足球跟踪

足球分析项目 引言 在现代体育分析领域&#xff0c;利用先进的计算机视觉技术和机器学习模型对比赛视频进行深入解析已成为一种趋势。本项目旨在通过YOLO&#xff08;You Only Look Once&#xff09;这一顶级的人工智能目标检测模型来识别并跟踪足球比赛中的球员、裁判以及足球…

【每日一题】LeetCode 2374.边积分最高节点(图、哈希表)

【每日一题】LeetCode 2374.边积分最高节点&#xff08;图、哈希表&#xff09; 题目描述 给定一个有向图&#xff0c;图中包含 n 个节点&#xff0c;节点编号从 0 到 n - 1。每个节点都有一个出边&#xff0c;指向图中的另一个节点。图由一个长度为 n 的整数数组 edges 表示…

江协科技STM32学习- P15 TIM输出比较

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

6张图掌握提示词工程师工作范围与工作技巧(提示词原理篇)

在人工智能的疆域中&#xff0c;提示词工程师扮演着至关重要的角色。他们精心设计的话语&#xff0c;是引导AI模型理解人类需求、激发创造力的关键。如同指挥官的号令&#xff0c;提示词工程师的每一个提问&#xff0c;都让AI的潜力得到释放&#xff0c;让技术与智慧的对话更加…

如何有效检测住宅IP真伪?

在当今的互联网时代&#xff0c;住宅IP&#xff08;即家庭用户通过宽带服务提供商获得的IP地址&#xff09;在跨境电商、广告投放、网络安全等多个领域扮演着重要角色。然而&#xff0c;随着网络环境的复杂化和欺诈行为的增多&#xff0c;如何有效检测和辨别住宅IP的真伪成为了…

2024年csp-j 初赛 真题+答案解析

恭喜CSP-J组考生完成第一轮认证&#xff01; 今天是CSP-J/S初赛的考试日&#xff0c;首先要祝贺所有参加CSP-J组考试的同学顺利完成第一轮认证&#xff01;

C++中的new与delete

目录 1.简介 2.底层 1.简介 new是升级版的malloc&#xff0c;它会先开空间再去调用构造函数。 delete是升级版的free&#xff0c;它会先调用析构函数再free掉空间。 class A { public:A(int a10, int b10){a a1;b b1;}private:int a;int b; };int main() {//new会先开空间…

大数据Flink(一百二十三):五分钟上手Flink MySQL连接器

文章目录 五分钟上手Flink MySQL连接器 一、创建数据库表 二、​​​​​​创建session集群 三、源表查询 四、​​​​​窗口计算 五、​​​​​​结果数据写回数据库 五分钟上手Flink MySQL连接器 MySQL Connector可以将本地或远程的MySQL数据库连接到Flink中&#x…

以太网接口MII 和 RMII

媒体独立接口 (MII) 是连接以太网MAC (媒体访问控制) 设备和PHY (物理层) 设备的标准化方法。其主要目的是促进以太网系统这两个基本组件之间的通信。 媒体独立接口 (MII) 介质独立接口 (MII) 是由 IEEE 802.3 标准定义的并行接口。MII 的管理接口允许配置和控制多个 PHY 设备…

安装Win11 24H2如何跳过BitLocker加密

今天来给大家分享一下在安装 Windows11 24H2 时&#xff0c;如何跳过BitLocker加密的小方法&#xff0c;Windows11 24H2版本默认自动为用户开启Bitlocker 加密&#xff0c;很多用户不知道自己设备已被偷偷加密&#xff0c;这样也可能会导致磁盘性能严重损失&#xff0c;特别是4…

计算机毕业设计 数字化农家乐管理平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

使用Diskgenius系统迁移

使用Diskgenius系统迁移 1、使用系统迁移2、注意点3、新备份的系统盘装在电脑上可能出现盘符错乱导致开机不进入桌面情况 1、使用系统迁移 参考视频&#xff1a; DiskGenius无损系统迁移&#xff0c;换硬盘无需重装系统和软件 2、注意点 1&#xff09;新的硬盘里面的所有资料…

linux安装Anaconda3

先将Anaconda3安装包下载好&#xff0c;然后在主文件夹里新建一个文件夹&#xff0c;将Anaconda3安装包拖进去。 打开终端未来不出现缺东西的异常情况&#xff0c;我们先安装 yum install -bzip2然后进入根目录下&#xff0c;在进入Anaconda3文件夹下 sh包安装方式 sh Anac…

为什么用迭代器调用不了对象中的函数

没加const可以 加了const就不行 我懂了 加了const v的值就不能修改&#xff0c;我的那些函数都可以修改值 应该是 好像不对 有大佬会吗