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

sju12

sju12

2016-02-19 15:56

下面是个一个二分法查找的图形演示程序教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!
不知道这样的演示效果怎么样,因为屏幕大小的问题没办法输出太多的数字,假如还有什么好的想法希望大家提出.#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();
  }
  
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
一个二分法查找的图形演示程序

java 折半查找法(二分查找)实例

编程语言 网络编程
java 折半查找法(二分查找)实例

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

二分法求多项式在-10 10间值的实现代码

编程语言 网络编程
二分法求多项式在-10 10间值的实现代码

一个分形图形

编程语言 网络编程
一个分形图形

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C 二分查找 递归与非递归的实现代码

编程语言 网络编程
C 二分查找 递归与非递归的实现代码

一个托盘程序演示 -闹钟 Alert

C语言教程 C语言函数
一个托盘程序演示 -闹钟 Alert

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

人间消失 曾经的天长地久 - QQ图案分组

人间消失 曾经的天长地久 - QQ图案分组

C++ sizeof 使用规则及陷阱分析

C++ sizeof 使用规则及陷阱分析
下拉加载更多内容 ↓