C/C++
xufan0001
这个作者很懒,什么都没留下…
展开
-
多项式计算
1.普通的多项式计算templateT ployEval(T coeff[], int n, const T& x){ // 计算n阶多项式在x处的值,系数为coeff[0:n] T y = 1, value = coeff[0]; for(int i = 1; i <= n; i++) { // 加上下一项 y *= x; value += y*coeff[i];原创 2017-04-14 18:33:20 · 769 阅读 · 0 评论 -
模拟先来先服务调度算法(C++)
先来先服务调度算法(FCFS,first come first served) 算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时如果他又想排队了,只能站到队尾去。 算法优点:易于理解且实现简单,只需要一个队原创 2017-04-16 16:20:28 · 14429 阅读 · 1 评论 -
模拟按优先数调度算法(C++)
(1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。要求运行时间——假设进程需要运行的单位时间数。优先数——赋予进程的优先数,调度时总是选取优先数大的进程先原创 2017-04-16 17:47:38 · 7525 阅读 · 2 评论 -
模拟时间片轮转算法(C++)
时间片轮转算法(RR,Round-Robin) 该算法采用剥夺策略。时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法,又称RR调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。 算法原理:让就绪进程以FCFS 的方式按时间片轮流使用CPU 的调度方式,即将系统中所有的就绪进程按照FCFS 原则,排成一个队列,每次调度时将CPU 分派给队首进程,让其执行一个时间原创 2017-04-16 16:29:12 · 10105 阅读 · 2 评论 -
C++ sizeof()详解
1. 定义:sizeof是何方神圣sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。MSDN上的解释为:The sizeof keyword gives the amount of storage, in bytes, associated with avariable or a type (including aggr转载 2017-05-26 10:07:33 · 575 阅读 · 0 评论 -
LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
原文地址:http://yacare.iteye.com/blog/2010049很多伙伴在更新VS2010,或者卸载VS2012安装2010后,建立Win32 Console Project/MFC项目时会出现”LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏“的错误。错误描述:1>正在编译资源…1>正在编译资源清单…1>正在链接…1>转载 2017-05-07 19:45:25 · 171 阅读 · 0 评论 -
列车车厢重排
1、问题描述 一列货运列车有n节车厢,每节车厢要停靠在不同的车站。假设n个车站从1到n编号,而且货运列车按照从n到1的顺序经过车站,车厢的编号与它们要停靠的车站编号相同。为了便于从列车上卸掉相应的车厢,必须按照从前至后、从1到n的顺序把车厢重新排列。2、具体代码// 列车车厢重排问题#include <iostream>#include <stack>using namespace std;/原创 2017-05-07 19:51:40 · 1806 阅读 · 4 评论 -
离线等价类
1、问题描述例子:假定 n= 1 4, R= { ( 1 , 11 ), ( 7 , 11 ), ( 2 , 1 2 ), ( 1 2 , 8 ), ( 11 , 1 2 ), ( 3 , 1 3 ), ( 4 , 1 3 ), ( 1 3 , 1 4 ),( 1 4 , 9 ), ( 5 , 1 4 ), ( 6 , 1 0 ) }。我们忽略了所有形如 ( a , a )的关系,因为按照反身属性,原创 2017-05-07 20:23:32 · 1827 阅读 · 0 评论 -
位运算总结
位运算应用口诀 清零取反要用与,某位置一可用或若要取反和交换,轻 轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 “<<” 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。 3 “>>”右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4转载 2017-05-26 11:03:14 · 180 阅读 · 0 评论 -
常用调度算法
常用调度算法总结 <div class="article_manage clearfix"> <div class="article_r"> <span class="link_postdate">2013-08-10 19:26</span> <span class="link_view" titl转载 2017-04-16 16:01:29 · 684 阅读 · 0 评论 -
插入排序
template<class T)void insertionSort(T a[], int n){ // 对数组a[0:n-1]进行插入排序 for(int i = 1; i < n; i++) { // 把a[i]插入a[0,i-1] T t = a[i]; for(int j = i - 1; j >=0 && t <原创 2017-04-14 19:52:05 · 180 阅读 · 0 评论 -
选择排序
选择排序 首先找出最大的元素,把它移到a[n-1],然后在余下的n-1个元素中找出最大的元素,把它移到a[n-2],如此进行下去,直到最后一个元素。template<class T>void selectionSort(T a[], int n){ // 及时终止的选择排序 bool sorted = false; for(int size = n; !原创 2017-04-14 19:17:08 · 444 阅读 · 0 评论 -
冒泡排序
冒泡排序 在一次冒泡过程中,相邻的元素比较,如果左边的元素大于右边的元素,则交换。一次冒泡过程结束后,最大的元素肯定在最右端。然后进行其他的冒泡过程。template<class T>bool bubble(T a[], int n){ // 把数组a[0:n-1]中的最大元素移到最右端 // 目前为止未交换 bool swapped = false;原创 2017-04-14 19:43:24 · 233 阅读 · 0 评论 -
二分查找
二分查找 在一个有序数组中查找元素。template<class T>int binarySearch(T a[], int n, const T& x){ // 在有序数组中a中查找元素x // 如果存在,就返回元素x的位置,否则返回-1 // 数据段的左端 int left = 0; // 数据段的右端 int right =原创 2017-04-14 20:01:21 · 177 阅读 · 0 评论 -
模拟抢占式优先权调度算法(C++)
抢占式优先权调度算法 在这种方式下,系统把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行原创 2017-04-18 16:19:01 · 10509 阅读 · 1 评论 -
模拟非抢占式优先权调度算法(C++)
非抢占式优先权算法 在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。#include <iostream>#include <string>#include <vector>using原创 2017-04-19 14:35:51 · 5801 阅读 · 1 评论 -
基数排序
基数排序一、算法描述以整形为例,将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程: (1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中) (2)收集,再将放置在0~9号桶中的数据按顺序放到数组中 重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位) 以[2, 13, 3原创 2017-04-14 21:29:24 · 225 阅读 · 0 评论 -
献给写作者的 Markdown 新手指南
献给写作者的 Markdown 新手指南 Markdown 是一种「电子邮件」风格的「标记语言」,我们强烈推荐所有写作者学习和掌握该语言。为什么?可以参考:『为什么作家应该用 Markdown 保存自己的文稿』。『Markdown写作浅谈』在此,我们总结 Markdown 的优点如下:纯文本,所以兼容性极强,可以用所有文本编辑器打开。让你转载 2017-04-19 17:14:39 · 404 阅读 · 0 评论 -
多机调度问题(非抢先调度)
1. 问题描述一个工程有m台一模一样的机器,我们有n个任务需要处理,任务i的处理时间为ti。所谓调度是指按任务在机器上的运行时间分配任务,使得: (1)一台机器在同一时间只能处理一个任务; (2)一个任务不能同时在两台机器上处理; (3)一个任务i的处理时间是ti个时间单位。并求出完成所有任务所需要的最短时间。2. 求解思路 采用最长处理时间任务优先的贪心策略:原创 2017-04-15 21:52:39 · 1629 阅读 · 0 评论 -
网易2017春招笔试真题编程题集合题解
网易2017春招笔试真题编程题集合题解双核处理题目一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。输入描述输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个转载 2017-05-26 11:51:51 · 855 阅读 · 0 评论