算法
文章平均质量分 66
记录平时学习到的实用算法
~豆沙味的旺仔
这个作者很懒,什么都没留下…
展开
-
银行家算法c++实现
#include <iostream>using namespace std;// 银行家算法实现:2021/11/14// m 进程数,n 资源种数 #define m 5#define n 3 // 比较两个迭代对象的元素,若左全部元素<=右全部元素返回1,否则返回0 int cmp(int s[n],int t[n]){ for(int i=0;i<n;i++) if(s[i]>t[i]) return 0; return 1;}原创 2021-11-14 21:24:55 · 763 阅读 · 0 评论 -
一般筛法求素数+快速线性筛法求素数
TAG 素数 数论素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功。基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 。。N^(0.5) ,看看能否整除N。如果需要判断的次数较多,则先用下面介绍的办法预处理。 一般的线性筛法首先先介绍一般的线性筛法求素数void make_prime() { memset(pr...转载 2020-04-11 11:53:28 · 297 阅读 · 0 评论 -
排序算法之插入排序
插入排序插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 (每步将一个待排序的元素,按其排序码大小插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止) (图片来源:https://www.cnblogs.com/five...转载 2020-04-07 01:08:25 · 258 阅读 · 0 评论 -
排序算法之归并排序
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采...转载 2020-04-07 01:01:07 · 142 阅读 · 0 评论 -
稳定排序和不稳定排序
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。  ...转载 2020-04-07 00:56:22 · 147 阅读 · 0 评论 -
PAT乙级 1035 插入与归并
题目:在这里插入图片描述输入样例1:103 1 2 8 7 5 9 4 6 01 2 3 7 8 5 9 4 6 0输出样例1:Insertion Sort1 2 3 5 7 8 9 4 6 0输入样例2:103 1 2 8 7 5 9 4 0 61 3 2 8 5 7 4 9 0 6输出样例2:Merge Sort1 2 3 8 4 5 7 9 0 6分析...原创 2020-04-07 00:45:53 · 158 阅读 · 0 评论 -
全排列函数(next_permutation) 及递归实现全排列
1.全排列函数(next_permutation) 实现 这个函数就是用来求数组的全排列的,至于怎么用,看下面的介绍:这是一个c++函数,包含在头文件algorithm里面,这个函数可以从当前的数组的大小按照字典序逐个递增的顺序排列看下面的模板int a[];do{ }while(next_permutation);下面代码可以输出1~n的全排列:#include &...原创 2020-04-03 21:17:32 · 574 阅读 · 0 评论