摘要:问题描述:有N个独立作业,每个作业处理时间为time[i],有M个相同的机器加工处理,约定每个作业可以在任何一台机器上加工处理,未完工前不允许中断处理,作业不能拆分成更小的子作业。要求在最短时间内完成,求最短时 解决方案最理想的方法是平均分配,每台机器处理的时间相同,最后同时处理完任务。实际情况中不一定能完全分配,我们应尽量缩小各个机器处理时间的差距,用贪 心算法可以比较好的解决:先将作业处理时间降序排列,依次选择时间往机器上安排,每次安排在当前工作量总时间最小的机器上,最后求得时间差距最小 代码实现#!/usr/bin/envpython#-*-coding:utf...
阅读全文
摘要:今天给大一的小孩讲结构体,讲到指向结构体的指针的时候,突然一个小孩提出了一个问题:指向结构体成员的指针p加1后指向谁?当时懵了,想写个程序验证一下,脑子一片空白。好像提问题的那个小孩听明白的,就干脆让他写吧。哈哈,他还挺厉害的,他写的代码大体是这样的:#include<stdio.h>structdata{inta;intb;intc;};intmain(){structdataa[3]={{11,12,13},{21,22,23},{31,32,33}};int*p=&a[0].c;//*p=13p++;printf("%d\n",*p);}大家认为会
阅读全文
摘要:内部排序——快速排序#include<stdio.h>#include<stdlib.h>voidmyqsort(int*a,intlow,inthigh){inti,j;intc;c=a[low];i=low;j=high;while(i<j){while(a[j]>=c&&i<j)--j;a[i]=a[j];while(a[i]<=c&&i<j)++i;a[j]=a[i];}a[i]=c;if(i-1>low)myqsort(a,low,i-1);if(high>i+1)myqsort(a,i
阅读全文
摘要:查找——实现监视哨法查找#include<stdio.h>#include<stdlib.h>intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}intmain(){inta[101],i;for(i=1;i<=100;i++)a[i]=rand()%100;for(i=1;i<=100;i++)printf("%d",a[i]);printf("\n");intkey;scanf("%d",&key);printf("
阅读全文
摘要:图——邻接矩阵DFS和BFS:图——邻接表的DFS和BFS:#include<stdio.h>#defineINF65536#definemax100//邻接矩阵typedefstruct{//intno;//编号intinfo;//权值信息}vertex;//顶点typedefstruct{intedge[max][max];intv_num,e_num;//顶点v和边e//vertexvexs[max];//顶点信息}graph;typedefstructnode{intvetex;//顶点structnode*next;intinfo;//权值}node;typedefstr
阅读全文
摘要:设计两种输入模式建立一棵二叉树;输出该二叉树的深度;输出二叉树的子叶结点#include<stdio.h>#include<malloc.h>structnode{chardata;structnode*lchild;structnode*rchild;};node*creat(node*p){charch;scanf("%c",&ch);if(ch==',')p=NULL;else{p=(node*)malloc(sizeof(node));p->data=ch;p->lchild=creat(p->lch
阅读全文
摘要:栈——进制的转换#include<iostream.h>#include<malloc.h>#include<stdlib.h>typedefstruct{int*base;int*top;intstacksize;}Stack;intInitStack(Stack&S){S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK_INIT_SIZE;return1;}intPush(Stack&am
阅读全文
摘要:顺序表—线性表的顺序实现删除多余元素#include<iostream>#include<stdlib.h>usingnamespacestd;structnode{intn[100];intlength;inttag;}a;voidinit(){inti;for(i=0;i<30;i++){a.n[i]=rand()%10;a.length++;}}voiddisplay(intn){inti;for(i=0;i<n;i++)cout<<a.n[i]<<"";cout<<endl;}intfind(i
阅读全文
摘要:可以建立表格,输入内容,居中显示#include<iostream>#include<conio.h>#include<string>#include<graphics.h>usingnamespacestd;classsheet{public:sheet(intl=5,intc=5,intwidth=80,inthighth=40,intposx=0,intposy=0);//行数,列数,行宽,列宽,起始位置x,yvoidput_txt(intx,inty,char*s);private:intcol,lin,col_high,lin_widt
阅读全文
摘要:本文转自http://deerchao.net/tutorials/regex/regex.htm正则表达式30分钟入门教程版本:v2.32 (2011-8-17) 作者:deerchao转载请注明来源目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你
阅读全文
摘要:MD5求助编辑百科名片Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)目录开发历程算法的应用算法描述算法的伪代码与标准C语言实现修改MD5加密MD5的破解MD5初步破解展开编辑本段开发历程背景 在90年代初由MIT Laboratory for Computer Science和RSA Dat.
阅读全文
摘要:研究了一下汉字编码,包括汉字的区位码、机内码,挺好玩的,也是比较实用的,一般我们在涂卡是区位码,比如“马”的区位码是3477,然后我们就涂上3477,然后读卡机就能根据区位码识别汉字;而机内码是机器内部的编码,平常我们可能用的比较少,“马”的机内码是49901,读者可以试一下:打开记事本,然后按住“Alt”键,不要松开,然后依次按49901,松开“Alt”,“马”字就打出来了!哈哈,神奇吧!其他汉字或字母包括符号都能通过这种方式输入。以后大家输入自己的姓名的时候,完全可以“秀”一把,哈哈,不调用输入法,按几个数字键就把姓名打出来了,而且精准无误!用输入法有时还要弄找半天呢!哈哈!那么,如何快.
阅读全文
摘要:GB2312汉字区位码、交换码和机内码转换方法 (ZT) 为了适应计算机处理汉字信息的需要,1981年我国颁布了GB2312国家标准。该标准选出6763个常用汉字(其中,一级常用汉字3755个,二级汉字3008个)和682个非汉字字符,并为每个字符规定了标准代码,以便在不同的计算机系统之间进行汉字文本交换。GB2312字符集构成一个94行、94列的二维表,行号称为区号,列号称为位号,每一个汉字或符号在码表中的位置用它所在的区号和位号来表示。为了处理与存储的方便,每个汉字的区号和位号在计算机内部分别用一个字节来表示。例如,“学”字的区号为49,位号为07,它的区位码即为4907,用2个字节的二进
阅读全文
摘要:学完栈写了一个计算器小程序,基本功能如下:1.支持基本的+ - * / % 运算2.支持sin、cos、tan、ln、log、乘方(^)、开方(sqrt)、指数(exp) 求值3.支持括号及括号嵌套4.支持由以上运算符组和成的长表达式求值5.支持小数及负数6.支持多位数运算7.支持省略最右边的")":例如“2*(1+2/(1+2”可补全")"并正确求值8.支持省略"*",例如(1+2)(3+4) 、10sin30、sin30cos60可以正确求值9.满足各种用户的操作习惯:空格在任何位置都可以出现,,出现个数任意,也可以不出现,,如&
阅读全文
摘要:#include<stdio.h>#include<stdlib.h>void myqsort(int *a,int low,int high){ int i,j; int c; c=a[low]; i=low; j=high; while(i<j) { while(a[j]>=c && i<j)--j; a[i]=a[j]; while(a[i]<=c && i<j)++i; a[j]=a[i]; } a[i]=c; if(i-1>lo...
阅读全文