最坏适应算法c语言(最坏适应算法缺点)

关于最坏适应算法c语言(最坏适应算法缺点)话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些最坏适应算法c语言(最坏适应算法缺点)内容,让我们一起了解一些技术吧!

  本篇文章给大家谈谈最坏适应算法c语言,以及最坏适应算法缺点对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

  本文目录一览:

  1、最坏适应算法 c语言

2、c语言,编程 算法 最坏情况下的时间复杂度可以与平均情况的时间复杂度相

3、C++ 最坏适应算法原代码

  最坏适应算法 c语言

  /**——————————————————

  进入程序后可以根据菜单选项进入不同的模块

  1.使用首次适应算法分配空间

  2.使用最佳适应算法分配空间

  3.释放一块空间

  4.显示内存分配情况

  5.退出系统

  ———————————————————-**/

  #include stdio.h

  #include stdlib.h

  #include string.h

  #include conio.h

  #define MEMSIZE 100 /*定义内存大小为100*/

  #define MINSIZE 2 /*如果小于此值 将不再分割内存*/

  typedef struct _MemoryInfomation{/* 内存空间分区表 结构*/

  int start; /*起始地址*/

  int size; /*大小*/

  char info; /*状态 F:空闲(Free) U:占用(Used) E 结束(end)*/

  }MEMINFO;

  MEMINFO MemList[MEMSIZE]; //内存空间信息表

  void Display();

  /*——————————————————–

  函数名:InitALL()

  功 能:初始化所有变量

  ——————————————————–*/

  void InitAll(){

  int i;

  MEMINFO temp={0,0,’e’};

  for(i=0;iMEMSIZE;i++) //初始化空间信息表

  MemList[i]=temp;

  MemList[0].start=0; //起始地址为0

  MemList[0].size=MEMSIZE;//空间初始为最大的

  MemList[0].info=’f’; //状态为空闲

  }

  /*——————————————————–

  函数名:FirstFit_new()

  功 能:首次适应算法分配内存

  ——————————————————–*/

  void FirstFit_new(){

  int i,j,size;

  char temp[10];

  printf(“FirstFit_new:How many MEMORY requir?”);

  gets(temp);

  size=atoi(temp); //将字符串转化为整数

  for(i=0; i MEMSIZE-1 MemList[i].info != ‘e’;i++) //到了空间尾且没有空间分配

  {

  if(MemList[i].size = size MemList[i].info==’f’) //满足所需要的大小,且是空闲空间

  {

  if(MemList[i].size – size = MINSIZE) //如果小于规定的最小差则将整个空间分配出去

  MemList[i].info=’u’; //标志为使用

  else

  {

  for(j = MEMSIZE-2; j i; j–) //将i后的信息表元素后移

  {

  MemList[j+1]=MemList[j];

  }

  //将i分成两部分,使用低地址部分

  MemList[i+1].start= MemList[i].start+size;

  MemList[i+1].size = MemList[i].size-size;

  MemList[i+1].info=’f’;

  MemList[i].size=size;

  MemList[i].info=’u’;

  }

  break;

  }

  }

  if(i == MEMSIZE-1 || MemList[i].info==’e’) //没有找到符合分配的空间

  {

  printf(“Not Enough Memory!!

  ”);

  getchar();

  }

  Display();

最坏适应算法c语言(最坏适应算法缺点)

  }

  /*——————————————————–

  函数名:BestFit_new()

  功 能:最佳适应算法分配内存

  ——————————————————–*/

  void BestFit_new()

  {

  int i,j,k,flag,size;

  char temp[10];

  printf(“BestFit_new How many MEMORY requir?”);

  gets(temp);

  size=atoi(temp); //将字符串转化为整数

  j=0;

  flag=0; //标志是否有合适的空间分配,0无,1有

  k=MEMSIZE; //用来保存满足要求的最小空间

  for(i=0;iMEMSIZE-1 MemList[i].info!=’e’;i++)

  {

  if(MemList[i].size = size MemList[i].info == ‘f’) //符合要求

  {

  flag=1;

  if(MemList[i].size k) //比符合要求的最小空间小,则交换

  {

  k=MemList[i].size;

  j=i;

  }

  }

  }

  i=j;

  if(flag == 0) //没找到

  {

  printf(“Not Enough Memory!

  ”);

  getch();

  j=i;

  }

  else if(MemList[i].size – size = MINSIZE) //小于规定的最小差,将整个空间分配

  MemList[i].info=’u’;

  else

  {

  for(j = MEMSIZE-2; j i; j–) //后移

  MemList[j+1]=MemList[j];

  MemList[i+1].start=MemList[i].start+size;

  MemList[i+1].size=MemList[i].size-size;

  MemList[i+1].info=’f’;

  MemList[i].size=size;

  MemList[i].info=’u’;

  }

  Display();

  }

  /*——————————————————–

  最坏适应算法

  */

  void BadFit_new()

  {

  int i,j,k,flag,size;

  char temp[10];

  printf(“BadFit_new How many MEMORY requir?”);

  gets(temp);

  size=atoi(temp);

  j=0;

  flag=0;

  k=0; //保存满足要求的最大空间

  for(i=0;iMEMSIZE-1MemList[i].info!=’e’;i++)

  {

  if(MemList[i].size=sizeMemList[i].info==’f’)

  {

  flag=1;

  if(MemList[i].sizek)

  {

  k=MemList[i].size;

  j=i;

  }

  }

  }

  i=j;

  if(flag=0)

  {

  printf(“Not Enough Memory!

  ”);

  getch();

  j=i;

  }

  else if(MemList[i].size-size=MINSIZE)

  MemList[i].info=’u’;

  else

  {

  for(j=MEMSIZE-2;ji;j–)

  MemList[j+1]=MemList[j];

  MemList[i+1].start=MemList[i].start+size;

  MemList[i+1].size=MemList[i].size-size;

  MemList[i+1].info=’f’;

  MemList[i].size=size;

  MemList[i].info=’u’;

  }

  Display();

  }

  /*——————————————————–

  函数名:del()

  功 能:释放一块内存

  ——————————————————–*/

  void del()

  {

  int i,number;

  char temp[10];

  printf(“

  please input the NUMBER you want stop:”);

  gets(temp);

  number=atoi(temp);

  if(MemList[number].info == ‘u’) //输入的空间是使用的

  {

  MemList[number].info = ‘f’; //标志为空闲

  if(MemList[number+1].info == ‘f’) //右空间为空则合并

  {

  MemList[number].size+=MemList[number+1].size; //大小合并

  for(i=number+1;i MEMSIZE-1 MemList[i].info !=’e’;i++)/* i后的空间信息表元素前移 */

  if(i0)

  MemList[i]=MemList[i+1];

  }

  if(number 0 MemList[number-1].info==’f’) //左空间空闲则合并

  {

  MemList[number-1].size+=MemList[number].size;

  for(i=number;iMEMSIZE-1MemList[i].info!=’e’;i++)

  MemList[i]=MemList[i+1];

  }

  }

  else

  {

  printf(“Thist Number is Not exist or is Not used!

  ”);

  getchar();

  }

  Display();

  }

  /*——————————————————–

  函数名:Display()

  功 能:显示内存状态

  ——————————————————–*/

  void Display(){

  int i,

  used=0; //记录可以使用的总空间量

  /* clrscr();*/

  printf(“

  ———————————————-

  ”);

  printf(“%5s%15s%15s”,”Number”,”start”,”size”,”Info”);

  printf(“

  ———————————————-

  ”);

  for(i=0;i MEMSIZE MemList[i].info != ‘e’;i++)

  {

  if(MemList[i].info == ‘u’)

  used+=MemList[i].size;

  printf(“%5d%15d%15d%15s

  ”,i,MemList[i].start,MemList[i].size,MemList[i].info==’u’?”USED”:”FREE”);

  }

  printf(“

  ———————————————-

  ”);

  printf(“Totalsize:%-10d Used:%-10d Free:%-10d

  ”,MEMSIZE,used,MEMSIZE-used);

  printf(“

  Press Any Key to return…”);

  getch();

  }

  /*——————————————————–

  函数名:main()

  功 能:主函数

  ——————————————————–*/

  void main(){

  char ch;

  InitAll();

  while(1){

  printf(“========================================================

  ”);

  printf(” 1.Get a block use the FISTFIT method

  ”);

  printf(” 2.Get a block use the BESTFIT method

  ”);

  printf(” 3.Get a block use the BadFIT method

  ”);

  printf(” 4.Free a block

  ”);

  printf(” 5.Display Mem info

  ”);

  printf(” 6.Exit

  ”);

  printf(“========================================================

  ”);

  ch=getch();

  switch(ch){

  case ‘1’:FirstFit_new();break; //首次适应算法

  case ‘2’:BestFit_new();break; //最佳适应算法

  case ‘3’:BadFit_new();break; //最坏适应算法

  case ‘4’:del();break; //删除已经使用完毕的空间

  case ‘5’:Display();break; //显示内存分配情况

  case ‘6’:exit(0);

  }

  }

  }

  c语言,编程 算法 最坏情况下的时间复杂度可以与平均情况的时间复杂度相

  最差情况下的复杂度是所有可能的输入数据所消耗的最大资源,如果最差情况下的复杂度符合我们的要求,我们就可以保证所有的情况下都不会有问题。

  某些算法经常遇到最差情况。比如一个查找算法,经常需要查找一个不存在的值。

  也许你觉得平均情况下的复杂度更吸引你,可是平均情况也有几点问题。第一,难计算,多数算法的最差情况下的复杂度要比平均情况下的容易计算的多,第二,有很多算法的平均情况和最差情况的复杂度是一样的. 第三,什么才是真正的平均情况?如果你假设所有可能的输入数据出现的概率是一样的话,也是不合理的。其实多数情况是不一样的。而且输入数据的分布函数很可能是你没法知道。

  考虑最好情况的复杂度更是没有意义。几乎所有的算法你都可以稍微修改一下,以获得很好的最好情况下的复杂度(要看输入数据的结构,可以是O(1))。怎样修改呢? 预先计算好某一输入的答案,在算法的开始部分判断输入,如果符合,给出答案。

  C++ 最坏适应算法原代码

  考的是内存的动态划分区域内容,很好写啊

  1.可以用数字来模拟内存区域划分情况,比如建一个100大小的数组(结构为struc (区号,值),值为0表示空闲,值为1表示占用,初始化几个已确定占有的分区,分区一,1-5 占有,6-12 空闲,。。。。。。。,并建立空闲区域表,很简单,从头到尾对数组扫描下就知道了

  2.最先适应:从内存开始地址找到第一个大于请求大小的连续空闲区域,如请求5个空间,那就在刚开始6-12空闲处建立分区二 ,6-11 ,占用

  3.最佳适应:指所有空闲块最适应请求大小的那块,min(空闲块大小-请求大小)

  4.最坏:指适应请求大小,且最大的那块空闲区域

  最坏适应算法c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于最坏适应算法缺点、最坏适应算法c语言的信息别忘了在本站进行查找喔。

以上是嗨壳技术分享网(www.heikehao.com)小编对“ 最坏适应算法c语言(最坏适应算法缺点) ”的详细解答,希望能够帮助到大家。

原创文章,作者:语言我知,如若转载,请注明出处:https://www.heikehao.com/10751.html

(0)
语言我知语言我知
上一篇 2020年5月5日
下一篇 2020年5月5日

相关推荐

  • 用ipad能学c语言吗 – ipad用什么软件学c语言

    今日,嗨壳技术分享网小编分享用ipad能学c语言吗 – ipad用什么软件学c语言 相关内容,内容如下。   ipad能够编程吗?   1、可以的,但是建议使用Wind…

    2020年4月1日
  • 优化c语言代码

    今日,嗨壳技术分享网小编分享优化c语言代码 相关内容,内容如下。   c语言算法优化   解一:简单方法:预期得分30。简单动态规划,f[i]代表青蛙跳到i点时所可能踩到的最少石子…

    2020年12月3日
  • 用c语言编个小程序,用c语言编个小程序怎么做

    今日,嗨壳技术分享网小编分享用c语言编个小程序,用c语言编个小程序怎么做 相关内容,内容如下。   用C语言帮我编一个小程序(大一作业)   我的 会C语言的朋友帮个忙啊 帮我编个…

    2020年5月17日
  • c语言查看文件夹大小函数(c语言获取文件大小库函数)

    今日,嗨壳技术分享网小编分享c语言查看文件夹大小函数(c语言获取文件大小库函数) 相关内容,内容如下。   本篇文章给大家谈谈c语言查看文件夹大小函数,以及c语言获取文件大小库函数…

    2020年4月15日
  • 单片机c语言左移和crol,单片机c语言左移和右移指令

    关于单片机c语言左移和crol,单片机c语言左移和右移指令话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些单片机c语言左移和crol,单片机c语言左移和右移指令内容,让我们一…

    2020年5月9日
  • 数列的c语言编程,pell数列c语言

    数列的c语言编程,pell数列c语言   010101数列怎么用c语言?   在C语言中,可以使用循环语句来实现一个一到100的数列。以下是一个简单的示例代码:在这个示例代码中,我…

    2020年6月21日
  • 卷积码c语言

    针对卷积码c语言的内容, 嗨壳技术分享网今天给大家作出详细的解答吧!   请问如何用C语言编写(2.1.3)卷积码? 最好能给出程序 谢谢!~   void main()   { …

    2020年7月23日
  • c语言从0开始,c语言0到100怎么表示

    c语言从0开始,c语言0到100怎么表示   为什么c语言中数组要从0开始   1、数组一般都是从零开始,但可以设定上下界。数组可以用相同名字引用一系列变量,并用数字来识别它们。在…

    2020年8月7日
  • 计算机二级c语言资料,计算机二级c语言考试辅导书

    针对计算机二级c语言资料,计算机二级c语言考试辅导书的内容, 嗨壳技术分享网今天给大家作出详细的解答吧!   全国计算机等级考试二级C语言的辅导书籍是什么?   1、国家计算机二级…

    2020年2月3日
  • 两个数的除法c语言程序

    针对两个数的除法c语言程序的内容, 嗨壳技术分享网今天给大家作出详细的解答吧!   c语言中,两整数相除,求带两位小数的结果,求完整程序.   1、首先,打开C语言编译器,新建一个…

    2021年12月15日

网上怎么找黑客帮忙多少钱

怎么网上找到的黑客?黑客的收费标准是什么呢?找黑客一般费用是多少?


找黑客帮忙一般要多少钱

黑客服务的价格范围很广,主要取决于服务的类型和难度。根据提供的信息如下:


1.攻击服务:


攻击范围:这包括了通过扫描入侵、种植木马等方式对他人计算机实施非法控制,并利用被控制的计算机对网站、App等服务器发起攻击


。1

2.特定账户的售价:


账户信息:如垂钓者、而勒索软件,显示市场对特定黑客工具的需求和价格波动。

3.攻击工具:

“RIG”攻击工具包的租用费用,提供了不同时长的选择。

4.远程访问木马(RAT)的价格:

相比去年有所下降,显示出市场价格的波动。

5.DDOS攻击的报价:

DDOS攻击服务按不同时长定价选择。

黑客服务的价格因服务类型、难度、以及市场需求的不同而有很大的差异。这些价格反映了黑客服务市场的复杂性和多样性,同时也提醒人们网络安全的重要性。