我的常用刷题网站:http://218.5.5.242:9018/JudgeOnline/

         https://www.luogu.com.cn/

排序

选择排序(selection sort)

1 void selection(int n,int* a){
2 for (int i = 0;i < n;i++){
3 for (int j = i + 1;j < n;j++){
4 if (a[i] > a[j]){
5 swap(a[i],a[j]);
6 }
7 }
8 }
9 }

选择排序

冒泡排序(bubble sort)

void bubble(int n,int* a){
for (int i = 0;i < n;i++){
for (int j = 0;j < n - 1;j++){
if (a[j] > a[j + 1]){
swap(a[j],a[j+1]);
}
}
}
}

冒泡排序

查找

枚举查找

bool search(int n,int* a,int x){
for (int i = 0;i < n;i++){
if (a[i] == x){
return true;
}
}
return false;
}

枚举查找

二分查找(binary search)

bool binary_search(int n,int* a,int x){
int mid,r,l;
r = 0;
l = n - 1;
while (r < l){
mid = (r + l) / 2;
if (x == mid) return true;
if (x > mid) l = mid;
if (x < mid) r = mid;
}
return false;
}

二分查找

搜索

深度优先搜索(DFS)求连通块

void dfs(int x,int y,int id){        // id是连通块记号
if (是否越界) return;
if (搜索过或不是指定符号) return;
标记已搜索;
搜索下一步;
}

DFS求连通块

这只是一个概括,详细代码样例参见C++算法代码——细胞问题

数学专题

判断质数

1 bool prime(int n){
2 for (int i = 2;i <= sqrt(n);i++){
3 if (n % i == 0) return false;
4 }
5 return true;
6 }

判断质数

for循环宏定义

1 #define _for_1(i,a,b) for(i = (a);i <= (b);i++)
2 #define _for_2(i,a,b) for(i = (a);i >= (b);i--)
3
4 // 可以这样应用:_for_1(i,1,n)

for循环宏

g++运行

>g++ 文件名.cpp -o 文件名
>./文件名

g++

代码作者亲测,作者将持续更新……

C++算法模板集合的更多相关文章

  1. 最短路问题的三种算法&模板

    最短路算法&模板 最短路问题是图论的基础问题.本篇随笔就图论中最短路问题进行剖析,讲解常用的三种最短路算法:Floyd算法.Dijkstra算法及SPFA算法,并给出三种算法的模板.流畅阅读本 ...

  2. 匈牙利 算法&模板

    匈牙利 算法 一. 算法简介 匈牙利算法是由匈牙利数学家Edmonds于1965年提出.该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法. 二分图的定义: 设G=(V,E)是一个 ...

  3. Tarjan 算法&模板

    Tarjan 算法 一.算法简介 Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度. 我们定义: 如果两个顶点可以相互通达,则称两个顶点强连 ...

  4. hdu 2255 奔小康赚大钱--KM算法模板

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 题意:有N个人跟N个房子,每个人跟房子都有一定的距离,现在要让这N个人全部回到N个房子里面去,要 ...

  5. POJ 1273 Drainage Ditches(网络流dinic算法模板)

    POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdi ...

  6. poj 1274 The Perfect Stall【匈牙利算法模板题】

    The Perfect Stall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20874   Accepted: 942 ...

  7. 国内大学毕业论文LaTeX模板集合

    国内大学毕业论文LaTeX模板集合 薛瑞尼的清华大学学位论文LaTeX模板http://sourceforge.net/projects/thuthesis/ 北大论文文档 LaTeX 模板 pkut ...

  8. 最短路径---dijkstra算法模板

    dijkstra算法模板 http://acm.hdu.edu.cn/showproblem.php?pid=1874 #include<stdio.h> #include<stri ...

  9. 算法模板学习专栏之总览(会慢慢陆续更新ing)

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/7495310.html特别不喜欢那些随便转载别人的原创文章又不给 ...

随机推荐

  1. linux上 用户间发送消息 通信

    联想:scp命令 1.使用write命令,向指定用户发送信息:           用户可以使用write命令给其他在线用户发送消息.格式: $ write zhangsan hello   worl ...

  2. 误删eth1或者 eth0

    不小心把机房,eth1删除了,过2天还演示,折腾一下午.... 首先eth1存在地方是2块./etc/sysconfig/network-scripts/下 /et/sysconfig/network ...

  3. swap交换2变量

    #define swap(x,y) {(x)=(x)+(y); (y)=(x)-(y); (x)=(x)-(y);} void swap(int i, int offset){ int temp; t ...

  4. 获取java栈异常

    package com.loan.modules.extbiz.in.rabbitmq.util; import java.io.PrintWriter; import java.io.StringW ...

  5. Openstack (keystone 身份认证)

    keystone简介 keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证.令牌的发放和校验.服务列表.用户权限的定义等等.云 ...

  6. (5)U盘安装Linux系统

    1.前期准备 使用 U 盘安装 Linux 系统,需要准备以下工具: 大容量的U盘(安装 CentOS 6.x 系统,U 盘容量至少 8 G): UltraISO 工具,用来制作 U 盘启动盘.除此之 ...

  7. mysql:如何利用覆盖索引避免回表优化查询

    说到覆盖索引之前,先要了解它的数据结构:B+树. 先建个表演示(为了简单,id按顺序建): id name 1 aa 3 kl 5 op 8 aa 10 kk 11 kl 14 jk 16 ml 17 ...

  8. 2019牛客暑期多校训练营(第五场)H-subsequence 2 (拓扑排序+思维)

    >传送门< 题意: 给你几组样例,给你两个字符a,b,一个长度len,一个长度为len的字符串str,str是字符串s的子串 str是s删掉除过a,b两字符剩下的子串,现在求s,多种情况输 ...

  9. AcWing 241.楼兰图腾 (树状数组,逆序对)

    题意:在二维坐标轴上给你一些点,求出所有由三个点构成的v和∧图案的个数. 题解:因为给出的点是按横坐标的顺序给出的,所以我们可以先遍历然后求出某个点左边比它高和低的点的个数(这个过程简直和用树状数组求 ...

  10. Educational Codeforces Round 94 (Rated for Div. 2) D. Zigzags (枚举,前缀和)

    题意:有一长度为\(n(4\le n\le 3000)\)的数组,选择四个位置\((i,j,k,l)\ (1\le i<j<k\le n)\),使得\(a_i=a_k\)并且\(a_j=a ...