数据结构与算法
数据结构与算法
撒阔以欧豆豆喲
这个作者很懒,什么都没留下…
展开
-
深搜n皇后
#include <iostream>using namespace std;char q[10][10];bool row[20],col[20],dg[20],udg[20];int n;void dfs(int x,int y,int s){ if(y==n) { y=0; x++; } ...原创 2020-04-27 08:59:03 · 127 阅读 · 0 评论 -
堆模拟
输入N个整数;“I x”,插入一个数x;“PM”,输出当前集合中的最小值;“DM”,删除当前集合中的最小值(数据保证此时的最小值唯一);“D k”,删除第k个插入的数;“C k x”,修改第k个插入的数,将其变为x;#include <iostream>#include <algorithm>#include <string.h>using n...原创 2020-04-27 08:52:52 · 199 阅读 · 0 评论 -
堆排序
输入一个长度为n的整数数列,从小到大输出前m小的数#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;int heap[N],m,n,siz;void down(int x){ int t=x; if(2*x<=siz&...原创 2020-04-27 08:48:54 · 133 阅读 · 0 评论 -
筛选质数
给定一个正整数n,求出1~n中质数的个数#include <iostream>using namespace std;const int N=1e6+10;int n,cnt=0;int prime[N];bool st[N];int get(int n){ if(n==1) return 0; for(int i=2;i<=n;i++) ...原创 2020-04-26 10:23:34 · 304 阅读 · 0 评论 -
并查集
#include <iostream>using namespace std;const int N=1e5+10;int q[N],n,m;int find (int x){ if(x!=q[x])q[x]=find(q[x]); return q[x];}int main(){ cin>>n>>m; f...原创 2020-04-26 10:06:45 · 115 阅读 · 0 评论 -
大整数+-*/
大整数加减乘除解决了大于1e9的整数的加减乘除运算问题核心思想是用字符串读入数字,用vector容器进行运算 可以计算1e9以上的两个整数加减 可以计算一个1e9以上整数和一个int的乘法 可以计算一个1e9以上整数除以一个int的除法读入:for (int i = obj.a.size() - 1; i >= 0; i--) { obj.A.push_back(obj...原创 2020-04-26 08:45:20 · 198 阅读 · 0 评论 -
栈和队列
栈const int N=1e5;int q[N],t=0;基本功能1、添加(push)void push (int x){ q[++t]=x;}2、查询栈顶元素(query)void query(){ printf("%d",q[t]);}3、弹出栈顶元素(pop)void pop(){ t--;}4、是否为空(empty)bool empty(){ ...原创 2020-03-02 19:30:38 · 80 阅读 · 0 评论 -
数组模拟链表
一个链表需要实现的功能:插入,修改,删除#include <iostream>using namespace std;const int N=1e6;int e[N]; //e[i]表示第i个插入的值是e[i]int ne[N]; //表示第i+1个插入的值的位置int idx; //idx记录当前是第几个插入的数int head;单向链表初始化:void ini...原创 2020-02-23 20:59:30 · 145 阅读 · 0 评论 -
二分检索
二分检索1、整数cheak函数检验x是否满足某种条件bool cheak(int x);模板1:int search( int l,int r){ while (l<r) { int mid=l+r>>1;//从中间一份为二 if(cheak(mid)) r=mid; }}...原创 2020-02-22 17:29:33 · 167 阅读 · 0 评论 -
dijkstra算法
dijkstra原始版 h2o#include<iostream>#include<cstring>#include<algorithm>const int N=510;int dista[N][N]; //用邻接矩阵存点与点间的距离int dist[N] //存点到第一个点间的距离bool st[N] //判是...原创 2020-02-15 18:48:49 · 214 阅读 · 0 评论 -
求素数
筛质数(打印素数表)#include <iostream>using namespace std;const int N=1e5;int n;int prime[N] //存质数bool st[N] //存状态1、朴素做法(O(nlog(n)))每找到一个质数,筛去该质数的所有倍数会有很多重复void get_prime(int n){ fo...原创 2020-02-19 14:22:46 · 96 阅读 · 0 评论 -
快速排序(递归,归并)
快速排序#include <iostream>using namespace std;const int N=1e5;int q[N],n; //待排序数组int main(){ cin>>n; for(int i=0 ;i<n ;i++) cin>>q[i]; quick_sort(q,0,n-1); return 0;}一...原创 2020-02-21 16:36:03 · 249 阅读 · 0 评论