算法笔记
EddieAy
这个作者很懒,什么都没留下…
展开
-
C++ STL
1、vector是一种容器,是变长数组。2、vector<int> s 或者vector<int> s[100] 后者是二维数组。3、在s后面插入元素 s.push_back(456) s.pop_back(44) 括号内填入要插入的元素。4、两种访问方式(1)s[0] s[1] s[s.size()-1] //s.size() 表示大小(2)迭代器 vector<int>::iterator p = s.begin()5、清除元素 s.eras.原创 2022-02-13 17:53:38 · 319 阅读 · 0 评论 -
PAT B1013
令Pi表示第i个素数。现任给两个正整数M≤N≤104,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103#include &l...原创 2022-01-23 13:36:19 · 352 阅读 · 0 评论 -
随机选择 |S2-S1|的最大值
给定n个互不相同的数,让其分为两组 n1 n2 使其 交 为 空集 并 为原集合然后使|n1-n2|的值最小,使|s2-s1|的值最大,s2 s1为 前n1 n2 个数的和首先 题都没读懂...其实 仔细思考了以后,不就是两个不重复的分组?关键就是 要找到 第 n/2大的数然后利用随机选择排序代码如下#include <stdio.h>#include <math.h>#include <stdlib.h>#include &...原创 2022-01-21 21:02:09 · 427 阅读 · 0 评论 -
随机选择算法(排序)
给定一个无序的数组,输入第n大,输出第n大的数。(随便排序)#include <stdio.h>#include <math.h>#include <stdlib.h>#include <time.h>#define max 5int randpartition(int a[],int low, int high){ int s=round(1.0*rand()/RAND_MAX*(high-low)+low); int temp=a[s原创 2022-01-21 17:46:38 · 866 阅读 · 0 评论 -
简单开根号(c语言)
#include <stdio.h>#define eps 1e-7bool flag=false;double sqrt(int n){ flag=false; double i=0,j=0; while(i*i<n){ i++;//1 2 3 } double left=i-1,right=i,mid; if(right*right==n){ flag=true; return right; } while(right-left>eps){.原创 2022-01-17 12:49:48 · 10173 阅读 · 0 评论 -
最多不相交的区间
1.16给定区间个数n,然后给定n个区间,求出尽可能多的不相交的区间。#include <stdio.h>#include <algorithm>using namespace std;struct point{ int x,y;}s[max]; bool cmp(point a,point b){//先按右端点,从小到大排序 if(a.y!=b.y) return a.y<b.y; else return a.x>b.x;//如果右端点相原创 2022-01-16 17:58:17 · 413 阅读 · 0 评论