page contents

冒泡排序:动图实现

使用图形库,实现冒泡排序动图显示,可以代码可以做修改用作与其他排序算法
#include <stdio.h>
#include <easyx.h>
#include <stdlib.h>
#include <time.h>
int arr[100] = { 0 };
void draw(int x, int y);
void mySort()
{
	for (int i = 0; i < 99; i++)
	{
		for (int j = 0; j < 99 - i; j++)
		{
			if (arr[j]<arr[j+1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
				draw(j,j+1);
			}
			
		}
	}
}
void draw(int x,int y)
{
	//清除改变了值对应位置的图形
	clearrectangle(x * 5, 0, x * 5 + 5, 250 * 3);
	clearrectangle(y * 5, 0, y * 5 + 5, 250 * 3);
	//画新的图像
	fillrectangle(x * 5, arr[x] * 3, x * 5 + 5, 250 * 3);
	fillrectangle(y * 5, arr[y] * 3, y * 5 + 5, 250 * 3);
	Sleep(10);
}
int main()
{
	initgraph(100 * 5, 250 * 3);
	srand((unsigned)time(NULL));
	for (int i = 0; i < 100; i++)
	{
		arr[i] = rand() % 249+1;
	}
	//提前画整个页面画出来
	for (int i = 0; i < 100; i++)
	{
		setlinecolor(BLUE);
		setfillcolor(RED);
		fillrectangle(i * 5, 250 * 3-arr[i] * 3, i * 5 + 5, 250 * 3);
	}

	mySort();



	getchar();
	getchar();
	closegraph();
	return 0;
}

可以类似上面的操作,用于其他排序算法,但是在修改图形界面大小的时候,需要重写计算画的位置和高度

  • 发表于 2021-07-08 16:56
  • 阅读 ( 701 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
易木
易木

5 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章