-
个人简介
全平台肘击桑境阳,支持者复制红字挂主页
全平台肘击桑境阳,支持者复制红字挂主页
全平台肘击桑境阳,支持者复制红字挂主页
快速排序
#include<bits/stdc++.h> using namespace std; vector<long long> v; int i,j,temp; void quicksort(int l,int r){ if(l>r){ return; } temp=v[l]; i=l; j=r; while(i!=j){ while(v[j]>=temp&&i<j){ j--; } while(v[i]<=temp&&i<j){ i++; } if(i!=j){ swap(v[i],v[j]); } } swap(v[l],v[j]); quicksort(l,j-1); quicksort(i+1,r); } int main(){ int n,x,cnt; cin>>n; for(int i=0;i<n;i++){ cin>>x; v.push_back(x); } quicksort(0,n-1); for(int i=0;i<n;i++){ cout<<v[i]<<' '; } return 0; }
归并排序
#include<bits/stdc++.h> using namespace std; vector<int> s1,s2; void marge(int l,int m,int r){ s2.clear(); int i=l,j=m+1; while(i<=m&&j<=r){ if(s1[i]<s1[j]){ s2.push_back(s1[i++]); }else{ s2.push_back(s1[j++]); } } while(i<=m){ s2.push_back(s1[i++]); } while(j<=r){ s2.push_back(s1[j++]); } for(i=l;i<=r;i++){ s1[i]=s2[i-l]; } } void margesort(int a,int b){ if(a==b){ return; } int m=(a+b)/2; margesort(a,m); margesort(m+1,b); marge(a,m,b); } int main(){ int n,x; cin>>n; for(int i=1;i<=n;i++){ cin>>x; s1.push_back(x); } margesort(0,n-1); for(int i=0;i<n;i++){ cout<<s1[i]; } return 0; }
选择排序
#include<bits/stdc++.h> using namespace std; void fun(int a[],int n){ for(int i=0;i<n;i++){ int minn=i; for(int j=i+1;j<n;j++){ if(a[j]<a[minn]){ minn=j; } } swap(a[i],a[minn]); } } int main(){ int n,a[305]; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } fun(a,n); for(int i=0;i<n;i++){ cout<<a[i]; } return 0; }
插入排序
#include<bits/stdc++.h> using namespace std; void insertsort(int a[],int n){ int x; for(int i=1;i<n;i++){ x=a[i]; int j=0; for(j=i-1;j>=0;j--){ if(a[j]>x){ a[j+1]=a[j]; }else{ a[j+1]=x; } } if(j<0){ a[0]=x; } } } int main(){ int n,v[1005]; cin>>n; for(int i=0;i<n;i++){ cin>>v[i]; } insertsort(v,n); for(int i=0;i<n;i++){ cout<<v[i]; } return 0; }
二分查找
#include<bits/stdc++.h> using namespace std; int n,x,h; vector<int> a; int fun(){ int l=1,r=n,v; while(l<r){ v=(l+r)/2; if(a[v]>=x){ r=v; }else{ l=v+1; } } if(x==a[l]){ return l; }else{ return -1; } } int main(){ cin>>n; for(int i=1;i<=n;i++){ scanf("%d",&h); a.push_back(h); } cin>>x; printf("%d",fun()+1); }
堆排序
#include<bits/stdc++.h> using namespace std; const int N=1e+6; int n,a[N]; void heapify(int n,int i){ int largest=i,lson=2*i,rson=2*i+1; if(a[largest]<a[lson]&&lson<=n){ largest=lson; } if(a[largest]<a[rson]&&rson<=n){ largest=rson; } if(a[i]!=a[largest]){ swap(a[i],a[largest]); heapify(n,largest); } } void heapsort(){ for(int i=n/2;i>=1;i--){ heapify(n,i); } for(int i=n;i>1;i--){ swap(a[1],a[i]); heapify(i-1,1); } } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } heapsort(); for(int i=1;i<=n;i++){ cout<<a[i]; } }
以大根堆为例: 1、首先先找到最后一个非叶子结点,假设n个元素。 那么⌊n/2」 2、把完全二叉树自底向上修改成大根堆的形式,每修改一个数据,数组里面对应的数据需要随之变化。 3、当变成大根堆的时候,祖宗结点(a[1])一定是最大的,那么只需要和a[n]交换。总共有n个数,那么只需要n-1次就可以排完
基数排序
#include<bits/stdc++.h> using namespace std; const int N=1e+5; int a[N],t[N]; int buchet[10]; void redixSort(int n){ int max_val=*(max_element(a,a+n)); int base=1; while(max_val/base>0){ memset(buchet,0,sizeof(buchet)); for(int i=0;i<n;i++){ buchet[a[i]/base%10]++; } for(int i=1;i<10;i++){ buchet[i]=buchet[i]+buchet[i-1]; } for(int i=n-1;i>=0;i--){ int v=a[i]/base%10; t[--buchet[v]]=a[i]; } for(int i=0;i<n;i++){ a[i]=t[i]; } base*=10; } } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ scanf("%d",a+i); } redixSort(n); for(int i=0;i<n;i++){ printf("%d",a[i]); } return 0; }
高精度减法
#include<bits/stdc++.h> using namespace std; const int N=1e+6; string a1,b1; bool flag=false; int a[N],b[N],c[N]; bool panduan(string s1,string s2){ if(s1.size()!=s2.size()) return s1.size()<s2.size(); else return s1<s2; } int main(){ cin>>a1>>b1; if(panduan(a1,b1)){ cout<<'-'; swap(a1,b1); } for(int i=a1.size()-1,j=0;i>=0;i--,j++){ a[j]=a1[i]-'0'; } for(int i=b1.size()-1,j=0;i>=0;i--,j++){ b[j]=b1[i]-'0'; } int len=max(a1.size(),b1.size()); for(int i=0;i<len;i++){ c[i]+=a[i]-b[i]; if(c[i]<0){ c[i]+=10; c[i+1]--; } } for(int i=len-1;i>=0;i--){ if(c[i]!=0){ flag=true; } if(flag){ cout<<c[i]; } } if(flag==false){ cout<<0; } return 0; }
高精度加法
#include<bits/stdc++.h> using namespace std; int main(){ string a1,b1; bool flag=0; int a[1000]={0},b[1000]{0},c[1000]={0}; cin>>a1>>b1; for(int i=a1.size()-1,j=0;i>=0;i--,j++){ a[j]=a1[i]-'0'; } for(int i=b1.size()-1,j=0;i>=0;i--,j++){ b[j]=b1[i]-'0'; } for(int i=0;i<a1.size()||i<b1.size();i++){ c[i]=a[i]+b[i]; } for(int i=0;i<a1.size()||i<b1.size();i++){ if(c[i]>=10){ c[i]-=10; c[i+1]++; } } for(int i=max(a1.size()+1,b1.size()+1);i>=0;i--){ if(c[i]!=0){ flag=1; } if(flag){ cout<<c[i]; } } }
哈希算法
#include<bits/stdc++.h> using namespace std; const int N=1e+5; int hash1[N],HMAX,cnt[N],b[N]; void hashinit(int x){ for(int i=1;i<=x;i++){ hash1[i]=-1; } } void hashinsert(int x){ int y=x%HMAX; while(1){ if(hash1[y]==-1){ hash1[y]=x; cnt[y]=1; return; }else if(hash1[y]==x){ cnt[y]++; return; } if(++y>HMAX){ y=1; } } } int hashget(int x){ int y=x%HMAX; while(1){ if(hash1[y]==-1){ return 0; }else if(hash1[y]==x){ return cnt[y]; } if(++y>HMAX){ y=1; } } } int main(){ int x; cin>>HMAX; hashinit(HMAX); for(int i=1;i<=HMAX;i++){ cin>>x; hashinsert(x); } //根据题目变化 return 0; }
Dijkstra朴素算法
#include<bits/stdc++.h> using namespace std; const int MAXN=100; int graph[MAXN][MAXN]; void initEdegs(int n){ for(int u=0;u<n;u++){ for(int v=0;v<n;v++){ graph[u][v]=INT_MAX; } } } void addEdge(int u,int v,int w){ graph[u][v]=min(graph[u][v],w); } void DijkstraInit(int n,int s,bool visited[],int dist[]){ for(int i=0;i<n;i++){ visited[i]=false; dist[i]=INT_MAX; } dist[s]=0; } int DijkstraFindMin(int n,bool visited[],int dist[]){ int u=-1; for(int i=0;i<n;i++){ if(visited[i]) continue; if(u==-1||dist[i]<dist[u]){ u=i; } } return u; } void DijkstraUpdate(int n,int u,bool visited[],int dist[]){ visited[u]=true; for(int i=0;i<n;i++){ if(visited[i]) continue; if(graph[u][i]!=INT_MAX){ dist[i]=min(dist[i],dist[u]+graph[u][i]); } } } void Dijkstra(int n,int s,int dist[]){ bool visited[MAXN]; DijkstraInit(n,s,visited,dist); while(true){ int u=DijkstraFindMin(n,visited,dist); if(u==-1) return; DijkstraUpdate(n,u,visited,dist); } } int main(){ int n,m,s; cin>>n>>m>>s; initEdegs(n); for(int i=0;i<m;i++){ int u,v,w; cin>>u>>v>>w; addEdge(u,v,w); } int dist[MAXN]; Dijkstra(n,s,dist); for(int i=0;i<n;i++){ if(dist[i]==INT_MAX){ cout<<"INF "; }else{ cout<<dist[i]<<" "; } } cout<<endl; return 0; }
希尔排序
#include <bits/stdc++.h> using namespace std; const long long N=1e+5; int a[N]; void shell_sort(int n){ int gap=n/2; while(gap>0){ for(int i=gap;i<n;i++){ int temp=a[i]; int j=i; while(j>=gap&&temp<a[j-gap]){ a[j]=a[j-gap]; j-=gap; } a[j]=temp; } gap/=2; } } int main(){ int n; cin>>n; for (int i = 0; i < n; i++){ cin>>a[i]; } shell_sort(n); for (int i=0;i<n;i++){ cout<<a[i]<<' '; } return 0; }
-
通过的题目
- Y035
- Y036
- P16
- P18
- P19
- P20
- P21
- P22
- P23
- P24
- P25
- P26
- P27
- P29
- P31
- P32
- P33
- Y0401
- Y0402
- Y0403
- Y0501
- Y0502
- Y0503
- P40
- Y0601
- P42
- P43
- Y0602
- P45
- P46
- Y0701
- Y0702
- P49
- P50
- P51
- P52
- P53
- P54
- P55
- P56
- P57
- P58
- P59
- P60
- P61
- P62
- P63
- P64
- P65
- P66
- P67
- P68
- P69
- P70
- P71
- P72
- P73
- P74
- P75
- P77
- P78
- P79
- P80
- P81
- P82
- P83
- P84
- P85
- P86
- P87
- P88
- P89
- P90
- P91
- P92
- P93
- P94
- P95
- P96
- P97
- P98
- P99
- P100
- P101
- P102
- P103
- P104
- P105
- P106
- P107
- P108
- P109
- P110
- P111
- P112
- P113
- P114
- P115
- P116
- P117
- P118
- P119
- P120
- P121
- P122
- P123
- P124
- P125
- P126
- P127
- P128
- P129
- P130
- P131
- P132
- P133
- P134
- P135
- P136
- P137
- P138
- P139
- P140
- P141
- P142
- P143
- P144
- P145
- P146
- P147
- P148
- P149
- P150
- P151
- P152
- P153
- P154
- P155
- P156
- P157
- P158
- P159
- P160
- P161
- P162
- P163
- P164
- P165
- P166
- P167
- P168
- P169
- P170
- P171
- P172
- P173
- P174
- P175
- P176
- P177
- P178
- P179
- P180
- P181
- P182
- P183
- P184
- P185
- P186
- P187
- P188
- P189
- P190
- P191
- Y0404
- P193
- P194
- P195
- P196
- P197
- P198
- P199
- P200
- P201
- P202
- P203
- P204
- P205
- P206
- P207
- P208
- P209
- Y0603
- P211
- Y0405
- P213
- P214
- Y0703
- P216
- Y0604
- Y0504
- P219
- Y0605
- P222
- P223
- Y0505
- Y0406
- P226
- Y0606
- P228
- Y0704
- P230
- P231
- Y0705
- P233
- P234
- P235
- P236
- P237
- P238
- Y0706
- P240
- P241
- P242
- P243
- P244
- P245
- P246
- P247
- P248
- P249
- P250
- P251
- P252
- P253
- P254
- P255
- P256
- P257
- P258
- P259
- P260
- P261
- P262
- P263
- P264
- P265
- P266
- P267
- P268
- P269
- P271
- P272
- P273
- P274
- P275
- P276
- P277
- P278
- P279
- P280
- P281
- P282
- P283
- P284
- P285
- P286
- P287
- P288
- P289
- P290
- P291
- P292
- P293
- P294
- P295
- P296
- P297
- P298
- P299
- P300
- P301
- P302
- P303
- P304
- P305
- P306
- P307
- P308
- P309
- P310
- P311
- P312
- P313
- P314
- P315
- P316
- P317
- P318
- P319
- P320
- P321
- P322
- P323
- P324
- P325
- P326
- P327
- P328
- P329
- P330
- P331
- P332
- P333
- P334
- P335
- P336
- P337
- P338
- P339
- P340
- P341
- P342
- P343
- P344
- P345
- P346
- P347
- P348
- P349
- P350
- P351
- P352
- P353
- P354
- P355
- P356
- P357
- P358
- P359
- P360
- P361
- P362
- P363
- P364
- P365
- P366
- P367
- P368
- P369
- P370
- P371
- P372
- P373
- P374
- P375
- P376
- P377
- P378
- P379
- P380
- P381
- P382
- P383
- P384
- P385
- P386
- P387
- P388
- P389
- P390
- P391
- P392
- P393
- P394
- P395
- P396
- P397
- P398
- P399
- P400
- P401
- P402
- P403
- P404
- P405
- P406
- P407
- P408
- P409
- P410
- P411
- P412
- P413
- P414
- P416
- P417
- P418
- P419
- P420
- P421
- P424
- P425
- P426
- P427
- P428
- P429
- P430
- P431
- P432
- P433
- P435
- P436
- P437
- P438
- P439
- P440
- P441
- P443
- P444
- P445
- P446
- P447
- P448
- P449
- P450
- P463
- P465
- P466
- P467
- P468
- P469
- P470
- P471
- P472
- P473
- P474
- P475
- P476
- P477
- P478
- P479
- P480
- P481
- P482
- P485
- P486
- P487
- P488
- P621
- P122
- P624
- P625
- P626
- P627
- P628
- P637
- HS003
- HS011
- HS012
- GT011
- P751
- P752
- P753
- P754
- P755
- P756
- P757
- P758
- P759
- P760
- P761
- P762
- P763
- P764
- P765
- P766
- P767
- P768
- P769
- P770
- P771
- P772
- P773
- P774
- P775
- P776
- P777
- P778
- P779
- P780
- P781
- P782
- P783
- P784
- P785
- P786
- P787
- P788
- P789
- P790
- P791
- P792
- P793
- P794
- P795
- P796
- P797
- P798
- P799
- P800
- P801
- P802
- P803
- P804
- P805
- P806
- P807
- P808
- P809
- P811
- P812
- P813
- P814
- P816
- P818
- P819
- P820
- P821
- P822
- P823
- P824
- P825
- P826
- P827
- P828
- P829
- P830
- P831
- P832
- P833
- P834
- P835
- P836
- P837
- P838
- P839
- P840
- P841
- P842
- P843
- P844
- P845
- P846
- P847
- P848
- P849
- P850
- P851
- P852
- P853
- P854
- P855
- P856
- P857
- P858
- P859
- P860
- P861
- P862
- P863
- P864
- P865
- P866
- P867
- P868
- P869
- P870
- P871
- P872
- P873
- P874
- P875
- P876
- P877
- P878
- P879
- P880
- P881
- P882
- P883
- P884
- P885
- P886
- P887
- P888
- P889
- P890
- P891
- P892
- P893
- P894
- P895
- P896
- P897
- P898
- P899
- P900
- P901
- P902
- P903
- P904
- P905
- P906
- P907
- P908
- P913
- YBT1105
- YBT1405
- P974
- P978
- P979
- P980
- P981
- P988
- P991
- P994
- P995
- P1014
- P1017
- P1018
- P1021
- P1036
- YBT1501
- YBT1702
- YBT1604
- K050301
- K050303
- K050304
- K050302
- K050602
- K050603
- P1176
- P1223
- P1224
- P1225
- P1226
- P1227
- P1229
- P1234
- P1235
- P1236
- P1237
- P1238
- P1239
- P1240
- P1242
- P1243
- P1244
- P1249
- P1250
- P1251
- P1252
- P1254
- P1255
- P1258
- P1263
- P1264
- P1266
- P1268
- P1269
- P1270
- P1273
- P1274
- P1276
- P1277
- P1280
- P1282
- P1283
- P1310
- P1326
- P1334
- P1365
- C0717
- P1412
- P1449
- P1451
- P1453
- P1454
- P1459
- P1461
- P1463
- P1466
- P1467
- P1468
- P1470
- P1471
- P1474
- P1475
- P1477
- P1491
- P1495
- P1497
- P1498
- P1500
- P1531
- P1532
- P1533
- P1534
- P1552
- P1564
- P1565
- P1566
- P1567
- P1572
- P1573
- P1576
- P1582
- P1759
- P1760
- P1761
- P1762
- P1950
- P2032
- P2045
- P2046
- P2047
- P2048
- P2160
- P2161
- P2162
- P2174
- P2303
- P2304
- P2311
- P2312
- P2313
- P2325
-
最近活动
- 2025年 0101第一季度中阶月考 OI
- 1月月考 ACM/ICPC
- 阶段性测试+中阶 OI
- 阶段性测试+低阶 OI
- 阶段性测试+高阶 OI
- 周六测试 ACM/ICPC
- 2024 CPS第二轮-模拟赛第七天 OI
- 2024 CPS第二轮-模拟赛第六天 OI
- 2024 CPS第二轮-模拟赛第五天 OI
- 2024 CPS第二轮-模拟赛第四天 OI
- 2024 CPS第二轮-模拟赛第三天 OI
- 集训小测-20240727 OI
- 集训小测-20240726 OI
- 集训小测-20240725 OI
- 进阶-20240724 作业
- 进阶-20240723 作业
- 进阶-20240722 作业
- 2024-7-21 作业
题目标签
- 一本通编程启蒙
- 441
- 循环结构
- 164
- 来源
- 157
- 小学生C++趣味编程
- 154
- 基础语法
- 147
- 分支结构
- 94
- 顺序结构
- 93
- 函数
- 72
- 数组
- 72
- 难度
- 59
- 字符串
- 54
- 洛谷
- 37
- 入门
- 36
- 二维数组
- 26
- 结构体
- 21
- 排序
- 20
- 多重循环
- 18
- 普及-
- 13
- 算法
- 11
- 多分支结构
- 8