一个二分法查找的图形演示程序

2016-02-19 15:56 112 1 收藏

下面是个一个二分法查找的图形演示程序教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

不知道这样的演示效果怎么样,因为屏幕大小的问题没办法输出太多的数字,假如还有什么好的想法希望大家提出.#include graphics.h
  void fun(int x[],int y,int z);/*具体排序过程*/
  void Init();/*图形初试化*/
  void Close();/*图形关闭*/
  void Put(int x[],int y);/*输出15个数字*/
  void Up(int x);/*画上箭*/
  void Down(int x);/*画下箭*/
  void Mid(int x);/*画中间箭*/
  void Clr(int x);/*擦除画面上的一些内容*/
  void main(void)
  {
   int a[15]={1,2,3,4,5,6,7,8,9,10,13,15,18,20,25};
   Init();
   Put(a,15);
   fun(a,5,15);
   Close();
  }
  void Mid(int n)/*画中间键*/
  {
   setcolor(WH99vE);/*中间箭的颜色为白色,以下三条线画成了箭头,以下两个函数一样*/
   line(25+n*40,120,25+n*40,80);
   line(25+n*40,120,20+n*40,110);
   line(25+n*40,120,30+n*40,110);
  }
  void Down(int n)/*画上箭*/
  {
   setcolor(6);
   line(25+n*40,120,25+n*40,80);
   line(25+n*40,120,20+n*40,110);
   line(25+n*40,120,30+n*40,110);
  }
  void Up(int n)/*画下箭*/
  {
   setcolor(6);
   line(25+n*40,180,25+n*40,220);
   line(25+n*40,180,20+n*40,190);
   line(25+n*40,180,30+n*40,190);
  }
  void Clr(int y)/*擦除画面上的一些内容*/
  {
    setfillstyle(SOLID_FILL,0);/*每次演示的时候先将下面显示的文字给去处掉*/
    bar(0,y+50,640,y-50);/*这里是用矩形的方式*/
  }
  void Put(int a[],int n)/*一开始的输出函数*/
  {
   int i;
   char num[5];
   setcolor(GREEN);
   settextstyle(0,0,2);/*设置字体的大小*/
   for(i=0;in;i++)
   {
    sprintf(num,"%d",a[i]);/*讲数字转换成字符串输出*/
    outtextxy(20+i*40,150,num);
   }
   settextstyle(0,0,1);
   setcolor(BLUE);
   outtextxy(250,250,"anykey to continue");
   getch();
  }
  void fun(int a[],int y,int n)/*具体的查找*/
  {
   int low,high,mid,i;
   char str1[5],str2[5];
   sprintf(str1,"%d",y);
   low=0;
   high=n-1;
   setcolor(RED);
   settextstyle(0,0,2);
   outtextxy(200,10,"FIND");
   outtextxy(330,10,str1);
   while(low=high)
   {
    Clr(250);
    Clr(80);
    Clr(230);/*这里三个Clr是为了把屏幕上的箭头和文字删了*/
    mid=(high+low)/2;
    Up(high);
    Down(low);
    Mid(mid);/*画好了三个箭头后开始查找*/
    if(a[mid]==y)
    {
     outtextxy(300,250,"FIND");
     break;
    }
    if(a[mid]y)
    {
     low=mid;
     sprintf(str2,"%d",a[mid]);
     outtextxy(250,250,str2);
     outtextxy(300,250,"");
     outtextxy(350,250,str1);
    }
   if(a[mid]y)
   {
    high=mid;
    sprintf(str2,"%d",a[mid]);
    outtextxy(250,250,str2);
    outtextxy(300,250,"");
    outtextxy(350,250,str1);
   }
   sleep(1);/*间隔一秒好执行下一次*/
   }
  }void Init()/*图形驱动*/
  {
   int gd=DETECT,gm;
   initgraph(&gd,&gm,"c:c");/*tc所在目录的路径*/
   cleardevice();
  }
  void Close()/*图形驱动结束*/
  {
   getch();
   closegraph();
  }
  

来源:https://www.tulaoshi.com/n/20160219/1610726.html

延伸阅读
标签: PHP
  该程序的一些功能有几点: 1:完整的搜索引擎 2:三种排序对象.(加入时间,下载次数,程序名字).及两种排序方法(倒序,顺序). 3:管理员随时修改. 4:报告链接错误.供管理员随时修正. 5:分页功能. 创建表: CREATE TABLE download (    author varchar(15),    title varchar(30),    u...
标签: PHP
  (主要用了两个字符串函数implode()和explode) 我制作的域名查询的源代码,主要用了两个字符串函数implode()和explode,利用这两个函数的切割字符串的强大功能,可以查询.com,.net.,org.,cc.,tv下的域名whois。 <?php echo '<center<form'; echo '<input type="text" name="string"'; echo '<in...
#include graphics.h #include stdio.h #include math.h #include time.h #define PI 3.14159 #define maxx 640 #define maxy 480main() {int i;  char c;  init();  draw();  c=getch(); } init() /*初始化图形系统函数*/ {int gdriver=DETECT,gmode; &n...
很多写Windows Device Driver的开发人员基本上都是使用Windows DDK进行开发的。但是,现在也有不少人都开始借助一些辅助工具。笔者去年开始接触到riverStudio,发现它真的是一个不错的开发工具,不仅写代码的时候思路清晰,而且和DDK的结合很好。 当然,也有很多人觉得用DriverStudio不够正宗,或者说不能很好的理解Windows Device Dr...
标签: PHP
  //管理程序chang.php源代码如下: <? session_start() ? <? if($session_power==""||$session_power<1) { header("location: ../message.php?redirect=default.php&message=你不是理员"); break; }? <?require ("../opendata.php");? <? if($step=="1") { if(!($...

经验教程

364

收藏

24
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部