/****************************************************
@Title: 数据结构实验
@Name: <实验1-1> 起泡排序
@Object:
[实验目的]
把起泡排序的算法改写成C语言程序,并编写程序
进行调试。掌握如何把类C语言书写的算法改写成
C语言程序。
[实验提示]
1)怎样将类C语言算法改写成C语言程序?
如:怎样处理局部变量,怎样处理符号常量等。
2)怎样书写程序才能提高代码的可读性?
如:文件的格式,函数声明的位置,主函数的位置,
函数具体实现的位置,采用缩进格式等。
@Usage:
请查看"TO-DO列表",根据要求完成代码
@Copyright: BTC 2004
@Author: Zhuang Bo
@Date: 2004
@Description:
*****************************************************/
///
// 包含头文件
#include <stdio.h>
///
// 对主函数中调用的函数进行声明
// 对数组a[0..n-1]进行起泡排序,使数据从小到大有序
//-------------------------------------
// TODO (#1#): 这里插入函数bubble_sort()的声明
//-------------------------------------
// 顺序打印数组a中的元素
void print_out(int a[],int n);
///
// 起泡排序 主程序
void main()
{
// 测试数据
int a[]={82,47,29,74,91,53,82,62,98,51};
printf("起泡排序\n");
// 打印排序前的数据
printf("排序前:\n");
print_out(a,10);
// 进行起泡排序
/***如果函数写在main()函数之前则在主函数中不用声明,否则需要声明****/
void bubble_sort(int a[],int n);
//-------------------------------------
// TODO (#1#): 这里调用bubble_sort()对数组a排序
bubble_sort(a,10);
//-------------------------------------
// 打印排序后的数据
printf("排序后:\n");
print_out(a,10);
}
///
// 函数的实现定义在下面
void bubble_sort(int a[],int n)
{
//-------------------------------------
// TODO (#1#): 这里定义函数中用到的变量
for(int i=0;i<n-1;i++)
for(int j=0;j<n-i-1;j++)
{
if(a[j]<a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
//-------------------------------------
} // bubble_sort
#define TRUE 1
#define FALSE 0
// 对数组a[0..n-1]进行起泡排序,使数据从小到大有序
// 顺序打印数组a中的元素
void print_out(int a[],int n)
{
int i;
for(i=0; i<n; i++)
printf(" %d",a[i]);
printf("\n");
}
