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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? order.cpp

?? 幾種排序算法的動(dòng)畫(huà)演示,包括冒泡排序,選擇排序,插入排序,快速排序,堆排序,支持單步演示,
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#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,"當(dāng)前數(shù)組:",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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人在线观看| 久久国产人妖系列| 91视频91自| 91九色最新地址| 成年人国产精品| 国产成人在线视频网址| 久久国产综合精品| 久久国产日韩欧美精品| 麻豆免费精品视频| 麻豆久久一区二区| 精品一二三四区| 国产一区二区成人久久免费影院 | 久久久久久久久蜜桃| 精品国产成人系列| 欧美精品一区二区不卡| 亚洲国产精品综合小说图片区| 国产精品成人在线观看| 亚洲人成伊人成综合网小说| 亚洲人成电影网站色mp4| 亚洲精品高清视频在线观看| 亚洲一区二区在线观看视频| 日韩av在线发布| 欧美群妇大交群中文字幕| 亚洲综合精品久久| 亚洲国产精品久久久久婷婷884| 一区二区成人在线| 亚洲综合色自拍一区| 亚洲成a人片在线不卡一二三区| 视频一区二区欧美| 精品一二三四在线| eeuss鲁片一区二区三区在线看| 91女神在线视频| 欧美日韩免费电影| 精品国产91九色蝌蚪| 亚洲国产成人午夜在线一区| 亚洲精选在线视频| 婷婷综合在线观看| 国产在线国偷精品产拍免费yy| 福利一区在线观看| 欧美在线观看视频一区二区| 欧美一区二区三级| 欧美韩国日本不卡| 亚洲成人先锋电影| 国产资源精品在线观看| 99久久精品国产观看| 欧美一区二区在线观看| 国产三区在线成人av| 成人美女视频在线观看| 欧美在线小视频| 精品卡一卡二卡三卡四在线| 欧美高清在线一区二区| 亚洲成人动漫精品| 国产剧情在线观看一区二区| 在线看日本不卡| 久久久久久久久久久99999| 亚洲午夜在线观看视频在线| 国产综合色精品一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美zozozo| 亚洲国产精品一区二区尤物区| 精品一区二区三区在线视频| 色婷婷亚洲综合| 日韩一区二区在线观看视频播放| 国产精品免费免费| 美美哒免费高清在线观看视频一区二区 | 色国产综合视频| 久久久噜噜噜久噜久久综合| 亚洲综合色视频| 粉嫩绯色av一区二区在线观看| 欧美一卡二卡在线| 一区二区三区在线免费观看| 成人免费视频国产在线观看| 日韩午夜在线观看视频| 一区二区三区四区国产精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日产国产高清一区二区三区 | 日韩欧美另类在线| 亚洲午夜久久久久久久久久久| 国产91精品一区二区麻豆网站| 日韩三级.com| 亚洲电影激情视频网站| 色一情一乱一乱一91av| 欧美国产精品v| 国产精品996| 伦理电影国产精品| 国产超碰在线一区| 精品免费日韩av| 五月天婷婷综合| 欧美日韩在线三区| 亚洲精品亚洲人成人网| 99久久亚洲一区二区三区青草| 久久精品夜色噜噜亚洲a∨| 久久电影网站中文字幕| 在线不卡欧美精品一区二区三区| 一区二区三区四区蜜桃 | 精品久久一二三区| 日本不卡视频在线| 欧美精品一二三区| 亚洲国产成人高清精品| 欧美视频中文一区二区三区在线观看| 亚洲欧洲无码一区二区三区| 不卡视频免费播放| 中文字幕高清一区| 成人听书哪个软件好| 亚洲国产成人自拍| a美女胸又www黄视频久久| 中文字幕+乱码+中文字幕一区| 国产成人精品www牛牛影视| 久久久午夜精品理论片中文字幕| 国产一区二区女| 国产偷国产偷亚洲高清人白洁 | 精品国产一区二区在线观看| 老司机精品视频导航| 欧美电影免费提供在线观看| 麻豆精品久久精品色综合| 精品久久久久久无| 国产一区二区三区在线观看免费视频| 久久久综合九色合综国产精品| 国产一区二区日韩精品| 中文字幕第一区二区| 色综合久久综合| 亚洲成人午夜影院| 欧美一区二区三区的| 国产乱码精品一区二区三| 国产午夜精品美女毛片视频| 99久久免费精品| 午夜激情一区二区三区| 欧美成人video| 成人影视亚洲图片在线| 亚洲欧美色图小说| 91精品国产91久久久久久一区二区| 久久99九九99精品| 国产精品久久午夜夜伦鲁鲁| 色哟哟国产精品| 蜜臀国产一区二区三区在线播放| 国产亚洲欧洲一区高清在线观看| 欧美精品日日鲁夜夜添| 欧美日韩一本到| 视频一区二区不卡| 2020国产精品| 91小视频在线免费看| 婷婷中文字幕一区三区| 久久久亚洲精品一区二区三区| 99视频热这里只有精品免费| 亚洲图片欧美视频| 亚洲精品一区二区三区影院| av网站一区二区三区| 视频一区二区中文字幕| 国产欧美日韩综合精品一区二区| 日本精品免费观看高清观看| 毛片av一区二区| 亚洲欧美日韩国产另类专区| 91精品国产91久久综合桃花| 国产高清成人在线| 亚洲成人7777| 国产欧美日韩中文久久| 欧美日韩精品是欧美日韩精品| 国产美女一区二区| 亚洲二区视频在线| 亚洲国产精品ⅴa在线观看| 欧美日本高清视频在线观看| 精品久久久久香蕉网| 9久草视频在线视频精品| 蜜臀av性久久久久蜜臀av麻豆| 国产精品久久久久久福利一牛影视| 91精品国产一区二区三区蜜臀 | 国产成人在线网站| 亚洲第一主播视频| 国产精品无遮挡| 日韩一区二区三区精品视频| 91蝌蚪国产九色| 国产一区二区按摩在线观看| 视频一区在线播放| 亚洲色图欧美偷拍| 久久久久久久久久久久电影| 7777精品伊人久久久大香线蕉完整版| 成人午夜激情在线| 极品销魂美女一区二区三区| 亚洲电影你懂得| 亚洲欧美电影一区二区| 久久久久久久久一| 日韩一卡二卡三卡国产欧美| 欧美色图天堂网| 91视频一区二区| 成人免费观看av| 国产精品1区2区| 国产一区二区三区四区在线观看| 婷婷开心激情综合| 亚洲精品伦理在线| 国产精品视频免费| 久久久久综合网| 精品国产凹凸成av人导航| 欧美一区二区三区四区五区| 欧美色大人视频| 色综合久久天天综合网| 成人一区二区视频| 麻豆91免费观看| 乱中年女人伦av一区二区| 首页国产丝袜综合| 亚洲h在线观看|