亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? order.cpp

?? 幾種排序算法的動畫演示,包括冒泡排序,選擇排序,插入排序,快速排序,堆排序,支持單步演示,
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "stdafx.h"
#include ".\order.h"
COrder::COrder()
{
	Width =GetSystemMetrics(SM_CXSCREEN);
	Height =GetSystemMetrics(SM_CYSCREEN);
	HWND hWndDesk=GetDesktopWindow();
	HDC hDCDesk=GetDC(hWndDesk);
	hDC=CreateCompatibleDC(hDCDesk);
	hBitmap=CreateCompatibleBitmap(hDCDesk,Width,Height);
	hBitmapOld=(HBITMAP)SelectObject(hDC,hBitmap);
	Cls(0,0,Width,Height,GetSysColor(COLOR_BTNFACE));
	ReleaseDC(hWndDesk,hDCDesk);
	hFont=CreateFont(12,0,0,0,0,0,0,0,0,0,0,0,0,"宋體");
	hFontOld=(HFONT)SelectObject(hDC,hFont);
	SetBkColor(hDC,GetSysColor(COLOR_BTNFACE));
	State=State_Stop;
	Interval=400;
	Work=Work_None;
	Arrow[0]=8*4;
	Arrow[1]=4*4;
	Arrow[2]=11*4;
	Arrow[3]=2*4;
	Arrow[4]=12*4;
	Arrow[5]=9*4;
	Arrow[6]=6*4;
	Arrow[7]=5*4;
	Arrow[8]=7*4;
	Arrow[9]=3*4;
	Arrow[10]=10*4;
	Arrow[11]=1*4;
	n=12;
	Parent=Root=Cur=NULL;
	d=u=m=f=j=i=-1;
	ti=0;
}
COrder::~COrder()
{
	SelectObject(hDC,hFontOld);
	DeleteObject(hFont);
	SelectObject(hDC,hBitmapOld);
	DeleteObject(hBitmap);
	DeleteDC(hDC);
}
int COrder::Next(void)
{
	if (Work==Work_Bubble)return BubbleNext();
	if (Work==Work_Insert)return InsertNext();
	if (Work==Work_Select)return SelectNext();
	if (Work==Work_Quick)return QuickNext();
	if (Work==Work_Heap)return HeapNext();
	if (Work==Work_Add)return AddNext();
	if (Work==Work_Find)return FindNext();
	return State=State_Stop;
}
void COrder::InsertFirst(void)
{
	j=1;
	Step=0;
	InsertDraw();
}
int COrder::InsertNext(void)
{
	if (j==n) return State=State_Stop;
	if ((Step==0) && (Current[j]<Current[j-1]))
	{
		i=j;
		Step=1;
	}
	else if ((Step==1) && i>0 &&(Current[i]<Current[i-1]))
	{
		int t=Current[i];
		Current[i]=Current[i-1];
		Current[i-1]=t;
		i--;
	}
	else
	{
		Step=0;
		j++;
		i=-1;
	}
	InsertDraw();
	return 1;
}
void COrder::InsertDraw(void)
{
	BubbleDraw();
}
int COrder::SelectNext(void)
{
	if (i==n-1)return State=State_Stop;
	if ((Step==0) && j!=n)
	{
		if (((m==-1) && (Current[i]>Current[j]) || ((m!=-1) && Current[m]>Current[j])) )m=j;
		j++;
	}
	else if (Step==1)
	{
		int t=Current[m];
		Current[m]=Current[i];
		Current[i]=t;
		Step=2;
	}
	else if (Step==2)
	{
		Finish[i]=1;
		i++;
		j=i+1;
		m=i;
		Step=0;
	}
	if ((Step==0) && (j==n))
	{
		if (m!=i)Step=1;
		else
		{
			Finish[i]=1;
			i++;
			j=i+1;
			m=i;
		}
	}
	SelectDraw();
	return 1;
}
int COrder::QuickNext(void)
{
	if (Step==0)
	{
		for (d=0;d<n && Finish[d]==1;d++);
		if (d==n)return State=State_Stop;
		for (u=d+1;u<n && Finish[u]==0;u++);
		u--;
		i=d;
		if (d!=u) Step=1;
		else Finish[d]=1;
	}
	else 
	{
		if (d==u)
		{
			Finish[d]=1;
			Step=0;
		}
		else if (i==d)
		{
			if (Current[i]>Current[u])
			{
				int t=Current[i];
				Current[i]=Current[u];
				Current[u]=t;
				i=u;
			}
			else u--;
		}
		else 
		{
			if (Current[i]<Current[d])
			{
				int t=Current[i];
				Current[i]=Current[d];
				Current[d]=t;
				i=d;
			}
			else d++;
		}
	}
	QuickDraw();
	return 1;
}
int COrder::BubbleNext(void)
{
	if (j==0) return State=State_Stop;
	if (i==j)
	{ 
		if(f==0) return State=State_Stop;
		else
		{
			i=0;
			Finish[j]=1;
			j--;
			f=0;
		}
	}
	if ( (Step == 0) && (Current[i]>Current[i+1]) ) Step = 1;
	else if((Step==1) && (Current[i]>Current[i+1]))
	{
		int t=Current[i];
		Current[i]=Current[i+1];
		Current[i+1]=t;
		i++;
		f=1;
	}
	else 
	{
		i++;
		Step=0;
	}
    BubbleDraw();
	return 1;
}
void COrder::BubbleFirst(void)
{
	i=0;
	j=n-1;
	f=0;
	BubbleDraw();
}
void COrder::BubbleDraw(void)
{
	RECT r;
	char * tStr;
	DrawVar();
	r.top=8+(8+24+8)+8+(8+24+8)+8;
	r.left=8;
	r.bottom=r.top+8+24+8+24+8+24+8;
	r.right =r.left+8+72+8+n*(24+8);
	DrawEdge(hDC,&r,EDGE_ETCHED,BF_RECT|BF_MIDDLE);
	r.left=8+8;
	r.right=r.left+72;
	r.top =8+(8+24+8)+8+(8+24+8)+8+8+24+8;
	r.bottom=r.top+24;
	DrawText(hDC,"當前數組:",9,&r,DT_VCENTER|DT_SINGLELINE);
	HBRUSH hBrush,hBrush2;
	SetBkColor(hDC,0xC0C0FF);
	hBrush=CreateSolidBrush(0xC0C0FF);
	hBrush2=CreateSolidBrush(0xFFC0C0);
	for (int a=0;a<n;a++)
	{
		r.left=8+8+72+8+a*(24+8);
		r.right=r.left+24;
		if (Finish[a]==1)
		{
			FillRect(hDC,&r,hBrush2);
			DrawEdge(hDC,&r,EDGE_BUMP,BF_RECT);
			tStr=Str(Current[a]);
			COLORREF Old=SetBkColor(hDC,0xFFC0C0);
			DrawText(hDC,tStr,lstrlen(tStr),&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
			SetBkColor(hDC,Old);
		}
		else
		{
			if ((Step ==0) || ((Step==1) && (a!=i)) || ((Step==2) && (a!=m)) || ((Step==3) && (a!=j))) FillRect(hDC,&r,hBrush);
			DrawEdge(hDC,&r,EDGE_BUMP,BF_RECT);
			tStr=Str(Current[a]);/////////////////////////////////////////////////////////////////
			if ((Step ==0) || ((Step==1) && (a!=i)) || ((Step==2) && (a!=m)) || ((Step==3) && (a!=j))) DrawText(hDC,tStr,lstrlen(tStr),&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
		}
	}
	DeleteObject(hBrush2);
	if (Step==0)
	{
		if (m!=-1 && i!=m)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+i*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+24+8,&p);
			LineTo(hDC,8+8+72+8+i*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+m*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+m*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
		}
	}
	if (Step==1)
	{
		r.top =8+(8+24+8)+(8+24+8)+8+8+8;
		r.bottom=r.top+24;
		r.left=8+8+72+8+i*(24+8);
		r.right=r.left+24;
		HBRUSH hBrush=CreateSolidBrush(0x80FF80);
		COLORREF ColorOld= SetBkColor(hDC,0x80FF80);
		FillRect(hDC,&r,hBrush);
		DeleteObject(hBrush);
		DrawEdge(hDC,&r,EDGE_BUMP,BF_RECT);
		tStr=Str(Current[i]);//////////////////////////////////////////////
		DrawText(hDC,tStr,lstrlen(tStr),&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
		SetBkColor(hDC,ColorOld);
		if (m!=-1)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+i*(24+8)+24,8+(8+24+8)+(8+24+8)+8+8+8+12,&p);
			LineTo(hDC,8+8+72+8+m*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+m*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
		}
		if (p!=-1)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+i*(24+8)+24,8+(8+24+8)+(8+24+8)+8+8+8+12,&p);
			if (adjust==0)
			{
				LineTo(hDC,8+8+72+8+j*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
				LineTo(hDC,8+8+72+8+j*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
			}
			else
			{
				int node=i*2+1;
				if (node+1<j && Current[node+1]>Current[node])node=node+1;
				if (node<j)
				{
					LineTo(hDC,8+8+72+8+node*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
					LineTo(hDC,8+8+72+8+node*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
				}
			}
		}
		if (d!=-1 && u!=i)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+i*(24+8)+24,8+(8+24+8)+(8+24+8)+8+8+8+12,&p);
			LineTo(hDC,8+8+72+8+u*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+u*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
		}
		if (u!=-1 && d!=i)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+i*(24+8),8+(8+24+8)+(8+24+8)+8+8+8+12,&p);
			LineTo(hDC,8+8+72+8+d*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+d*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
		}
	}
	if (Step==2)
	{
		if (m!=-1)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+m*(24+8),8+(8+24+8)+(8+24+8)+8+8+8+12,&p);
			LineTo(hDC,8+8+72+8+i*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+i*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
		}
		r.top =8+(8+24+8)+(8+24+8)+8+8+8;
		r.bottom=r.top+24;
		r.left=8+8+72+8+m*(24+8);
		r.right=r.left+24;
		HBRUSH hBrush=CreateSolidBrush(0x80FF80);
		COLORREF ColorOld= SetBkColor(hDC,0x80FF80);
		FillRect(hDC,&r,hBrush);
		DrawEdge(hDC,&r,EDGE_BUMP,BF_RECT);
		tStr=Str(Current[m]);//////////////////////////////////////////////
		DrawText(hDC,tStr,lstrlen(tStr),&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
		SetBkColor(hDC,ColorOld);
	}
	if (Step==3)
	{
		if (j!=-1)
		{
			POINT p;
			MoveToEx(hDC,8+8+72+8+j*(24+8),8+(8+24+8)+(8+24+8)+8+8+8+12,&p);
			LineTo(hDC,8+8+72+8+i*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12);
			LineTo(hDC,8+8+72+8+i*(24+8)+12,8+(8+24+8)+(8+24+8)+8+8+8+12+12+8);
		}
		r.top =8+(8+24+8)+(8+24+8)+8+8+8;
		r.bottom=r.top+24;
		r.left=8+8+72+8+j*(24+8);
		r.right=r.left+24;
		HBRUSH hBrush=CreateSolidBrush(0x80FF80);
		COLORREF ColorOld= SetBkColor(hDC,0x80FF80);
		FillRect(hDC,&r,hBrush);
		DrawEdge(hDC,&r,EDGE_BUMP,BF_RECT);
		tStr=Str(Current[j]);//////////////////////////////////////////////
		DrawText(hDC,tStr,lstrlen(tStr),&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
		DeleteObject(hBrush);
		SetBkColor(hDC,ColorOld);
	}
	DeleteObject(hBrush);
	SetBkColor(hDC,GetSysColor(COLOR_BTNFACE));
	r.top =8+(8+24+8)+(8+24+8)+8+8+24+8+24+8+8;
	r.bottom=r.top+24;
	r.left=8+8+72+8+i*(24+8)-3;
	r.right=r.left+24;
	if (i>=0 && i<n) DrawText(hDC,"I↑",3,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	r.left=8+8+72+8+j*(24+8)+3;
	r.right=r.left+24;
	if (j>=0 && j<n) DrawText(hDC,"↑J",3,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	r.left=8+8+72+8+d*(24+8)+3;
	r.right=r.left+24;
	if (d>=0 && d<n) DrawText(hDC,"↑D",3,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	r.left=8+8+72+8+u*(24+8)+3;
	r.right=r.left+24;
	if (u>=0 && u<n) DrawText(hDC,"↑U",3,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	r.left=8+8+72+8+m*(24+8)+3;
	r.right=r.left+24;
	if (m>=0 && m<n) DrawText(hDC,"↑M",3,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	r.left=8+8+72+8+p*(24+8)+3;
	r.right=r.left+24;
	if (p>=0 && p<n) DrawText(hDC,"↑P",3,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	HDC hDCDest=GetDC(hWnd);
	BitBlt(hDCDest,8,8+(8+24+8)+8+(8+24+8),8+(8+72+8)+n*(24+8),8+(8+24+8+24+8+24+8),hDC,8,8+(8+24+8)+8+(8+24+8),SRCCOPY);
	ReleaseDC(hWnd,hDC);
}
int COrder::HeapNext(void)
{
	if (adjust)
	{
		if (j==1)return State=State_Stop;
		int node=i*2+1;
		if (node+1<j && Current[node+1]>Current[node])node=node+1;
		if (node<j && Current[node]>Current[i])
		{
			if (Step==0)Step=1;
			else 
			{
				int t=Current[i];
				Current[i]=Current[node];
				Current[node]=t;
				i=node;
			}
		}
		else
		{
			Step=0;
			if (p>0)
			{
				p--;
			}
			else
			{
				adjust=0;
				j--;
			}
			i=p;
		}
	}
	else
	{
		if (Step==0)Step=1;
		else if (Step==1)
		{
			int t=Current[i];
			Current[i]=Current[j];
			Current[j]=t;
			i=j;
			Step=3;
		}
		else
		{
			i=0;
			Finish[j]=1;
			Step=0;
			adjust=1;
		}
	}
	HeapDraw();
	return 1;
}
void COrder::SelectFirst(void)
{
	i=0;
	m=i;
	j=i+1;
	SelectDraw();
}
void COrder::QuickFirst(void)
{
	d=0;
	u=n-1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区影院| 99久久精品国产毛片| 成人一级黄色片| 欧美另类变人与禽xxxxx| 国产欧美一区二区三区在线老狼| 亚洲成人免费看| 成人高清免费在线播放| 精品日韩av一区二区| 亚洲妇女屁股眼交7| 99精品欧美一区二区蜜桃免费| 日韩三级av在线播放| 亚洲国产婷婷综合在线精品| 99亚偷拍自图区亚洲| 国产片一区二区| 精品一区二区三区久久久| 欧美视频一区在线| 亚洲人成网站在线| 成人黄色a**站在线观看| 欧美成人bangbros| 天堂va蜜桃一区二区三区| 色网综合在线观看| 国产精品福利影院| 成人黄动漫网站免费app| 国产日韩精品一区二区三区| 久久99精品久久久| 精品久久人人做人人爽| 日韩电影免费在线看| 欧美精品123区| 亚洲成av人片在线观看| 欧美色视频在线观看| 一区二区三区视频在线观看| 日本精品免费观看高清观看| 国产精品免费aⅴ片在线观看| 一区二区三区四区不卡视频| 日本精品一级二级| 亚洲v中文字幕| 欧美一区二区三区在线视频| 日韩不卡手机在线v区| 欧美一区二区国产| 久久电影网站中文字幕| 精品区一区二区| 亚洲最大成人综合| 欧美日韩高清影院| 日韩二区在线观看| 欧美精品一区二区精品网| 精品一区二区在线看| 久久嫩草精品久久久精品| 国产91在线|亚洲| 国产精品久久久久久久久久久免费看 | 成人免费毛片app| 国产精品久久毛片av大全日韩| aaa亚洲精品一二三区| 亚洲精品国产一区二区精华液 | 国产精品高潮呻吟久久| 色婷婷亚洲一区二区三区| 亚洲成人av一区二区| 日韩欧美国产1| 成人精品视频一区二区三区 | 国产精品一二三在| 国产精品毛片高清在线完整版| www.av精品| 丝袜美腿亚洲一区二区图片| 久久色.com| 日本乱码高清不卡字幕| 久久99精品久久久久婷婷| 国产精品剧情在线亚洲| 欧美巨大另类极品videosbest | 亚洲精品在线观看视频| 国内精品视频一区二区三区八戒| 久久午夜老司机| 99久久久国产精品| 婷婷开心久久网| 日本一区二区三区久久久久久久久不 | 国产精一品亚洲二区在线视频| 国产精品传媒入口麻豆| 91精品国产一区二区三区 | 久久亚洲一级片| 91丨porny丨在线| 久久爱www久久做| 亚洲久草在线视频| 亚洲精品一区二区三区香蕉| 91官网在线观看| 国产乱一区二区| 午夜a成v人精品| 中文字幕日韩欧美一区二区三区| 欧美一区二区观看视频| 一本大道av一区二区在线播放| 国产自产2019最新不卡| 亚洲综合999| 国产精品久久久久精k8| 精品国免费一区二区三区| 91成人在线观看喷潮| 成人视屏免费看| 国产一区二区三区免费观看| 三级久久三级久久| 一区二区三区自拍| 亚洲欧洲韩国日本视频| 久久久美女毛片| 日韩美女一区二区三区| 欧美裸体一区二区三区| 91福利小视频| 91在线视频网址| 成人久久视频在线观看| 蜜桃视频在线一区| 日韩精品久久久久久| 亚洲五月六月丁香激情| 亚洲免费在线观看| 中文字幕一区二区三区在线观看 | 日韩 欧美一区二区三区| 亚洲美女一区二区三区| 综合久久久久久久| 中文字幕一区二区三区av| 国产精品成人在线观看| 欧美激情一区二区三区不卡| 久久久久国产精品人| 久久精品欧美一区二区三区不卡| 日韩精品专区在线影院重磅| 制服丝袜亚洲播放| 欧美一级二级三级蜜桃| 欧美一区二区视频免费观看| 日韩欧美一区二区视频| 欧美一级二级三级蜜桃| 精品免费国产一区二区三区四区| 欧美成人猛片aaaaaaa| 欧美草草影院在线视频| 久久网这里都是精品| 中文字幕免费在线观看视频一区| 国产亚洲精品免费| 亚洲日本va午夜在线影院| 亚洲精品菠萝久久久久久久| 亚洲一区二区欧美激情| 性做久久久久久久久| 蜜桃视频一区二区三区在线观看| 美女国产一区二区三区| 国产一区不卡视频| 99免费精品在线| 在线观看日韩一区| 91精品国产综合久久婷婷香蕉| 欧美电影免费观看高清完整版在线| 久久美女高清视频| 亚洲天天做日日做天天谢日日欢 | 国产精品一级黄| 91视视频在线直接观看在线看网页在线看| 成人黄色大片在线观看| 欧美午夜精品一区二区蜜桃 | 久久综合久久鬼色中文字| 日本一区二区免费在线观看视频| 最新国产成人在线观看| 亚洲成人在线网站| 国产精品一卡二卡| 欧美日韩一区二区欧美激情| 日韩欧美成人一区二区| 亚洲色图制服诱惑| 日韩电影在线免费观看| 成人精品一区二区三区四区| 欧美老女人第四色| 欧美激情艳妇裸体舞| 午夜欧美大尺度福利影院在线看| 国产在线日韩欧美| 欧美熟乱第一页| 久久久精品黄色| 午夜精品久久久久久久久久久 | 综合自拍亚洲综合图不卡区| 青草av.久久免费一区| 成人激情电影免费在线观看| 在线观看91精品国产麻豆| 国产精品少妇自拍| 捆绑变态av一区二区三区| 波多野结衣在线aⅴ中文字幕不卡| 欧美另类久久久品| 亚洲欧美激情视频在线观看一区二区三区 | 国产欧美一二三区| 麻豆一区二区99久久久久| 色网综合在线观看| 国产精品私房写真福利视频| 喷白浆一区二区| 精品视频在线视频| 亚洲日本乱码在线观看| 福利91精品一区二区三区| 日韩精品资源二区在线| 亚洲v精品v日韩v欧美v专区| 91免费小视频| 国产精品丝袜91| 国产精品18久久久久久久久| 91精品国产色综合久久久蜜香臀| 亚洲精品美国一| 色综合久久久网| 国产精品免费久久久久| 国产精品一区三区| 日韩免费高清视频| 麻豆精品蜜桃视频网站| 欧美一级二级三级蜜桃| 奇米精品一区二区三区在线观看一 | 成人免费黄色大片| 国产人成亚洲第一网站在线播放| 麻豆精品国产传媒mv男同| 91精品国模一区二区三区| 视频一区在线视频| 日韩一区二区在线观看| 日本少妇一区二区|