新人新气象,又一个学习C的新人来了。

冒泡排序,基础中的基础,原理不啰嗦了。

代码中display()为数组展示函数,sort_bubble()为直接实现排序,details()为带动画展示。

 #include <stdio.h>
#include <stdlib.h>
#include <windows.h> #define LENGTH 20 const WORD FORE_BLUE = FOREGROUND_BLUE|FOREGROUND_INTENSITY;
const WORD FORE_GREEN = FOREGROUND_GREEN|FOREGROUND_INTENSITY;
const WORD FORE_RED = FOREGROUND_RED|FOREGROUND_INTENSITY;
const WORD FORE_WHITE = FOREGROUND_RED | FOREGROUND_GREEN|FOREGROUND_BLUE; void sort_bubble(int *a);
void display(int *a);
void details(int *a); void display(int *a)
{
int i;
for (i=;i<LENGTH;i++)
{
printf("%2d ",a[i]);
}
printf("\n");
} void sort_bubble(int *a)
{
int i,j,k,temp;
for (i=;i<LENGTH-;i++)
{
k=;
for (j=;j<LENGTH-i-;j++)
{
if (a[j]>a[j+])
{
temp=a[j];
a[j]=a[j+];
a[j+]=temp;
k++;
} }
if (k==)
{
break;
}
}
}
int main()
{
int array[LENGTH]={,,,,,,,,,,
,,,,,,,,,};
int array2[LENGTH]={,,,,,,,,,,
,,,,,,,,,};
printf("Before sort:\n");
display(array);
sort_bubble(array);
printf("Success sort:\n");
display(array);
printf("Press to display details:\n");
getch();
details(array2);
getch();
return ;
} void details(int *a)
{
int i,j,k,temp;
HANDLE outhandle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD xy={,};
xy.Y=;
display(a);
for (i=;i<LENGTH-;i++)
{
k=;
for (j=;j<LENGTH-i-;j++)
{
Sleep();
xy.X=j*;
SetConsoleTextAttribute(outhandle, FORE_RED);
SetConsoleCursorPosition(outhandle,xy);
printf("%2d %2d",a[j],a[j+]);
if (a[j]>a[j+])
{
temp=a[j];
a[j]=a[j+];
a[j+]=temp;
Sleep();
xy.X=j*;
SetConsoleCursorPosition(outhandle,xy);
printf(" ");
SetConsoleCursorPosition(outhandle,xy);
printf("%2d %2d",a[j],a[j+]);
k++;
}
Sleep();
xy.X=j*;
SetConsoleCursorPosition(outhandle,xy);
SetConsoleTextAttribute(outhandle, FORE_WHITE);
printf("%2d %2d",a[j],a[j+]);
}
xy.X=*(LENGTH--i);
SetConsoleCursorPosition(outhandle,xy);
SetConsoleTextAttribute(outhandle, FORE_GREEN);
printf("%2d",a[LENGTH-i-]);
if (k==)
{
break;
}
}
xy.X=;
xy.Y=;
SetConsoleCursorPosition(outhandle,xy);
SetConsoleTextAttribute(outhandle, FORE_GREEN);
display(a);
CloseHandle(outhandle);
}

点击显示伪代码

最新文章

  1. #id+变量
  2. 25、继续echarts实现中国地图
  3. Jump Game | &amp; ||
  4. VMware Workstation linux 问题
  5. ACM题目————已知前序和中序求后序
  6. 剔除数组或List中重复的元素
  7. 结构型—桥接(Bridge)模式
  8. Java基础知识强化之集合框架笔记64:Map集合之ArrayList嵌套HashMap
  9. Python Tutorial 学习(二)--Using the Python Interpreter
  10. 老oj曼哈顿最小生成树
  11. Drupal 7 电子邮件的发送设置 SMTP, Mail System, Mime Mail
  12. USACO 1.3 Wormholes
  13. 用于辅助在 bootstrap-dialog 中的表现:app-jquery-dialog.js
  14. mysql数据库面试总结
  15. 【Alpha】Daily Scrum Meeting——Day6
  16. tomcat在Debug模式下无法启动解决办法
  17. [No0000118]SQL Server附加数据库拒绝访问解决方法汇总
  18. SD从零开始15-18
  19. jQuery总结或者锋利的jQuery笔记二
  20. Java 三大主流 工作流 学习

热门文章

  1. linux防火墙放行了端口,但是仍然访问不到
  2. Python学习---高阶函数的学习
  3. .C#认证考试试题汇编:第一单元:1,11 第二单元:1,11
  4. ping -l 1000 -t 与ping -t的区别
  5. Oracle三种链接方式的区别
  6. myeclipse 复制项目不包含svn或CVS目录
  7. React v15.5.0更新说明 &amp; v16.0.0更新预告
  8. SAP Cloud for Customer里Sales Order和Sales Quote的建模方式
  9. 绕过安全狗等一些WAF收集
  10. 两种MVC框架比较