一、实验目的和要求
理解和掌握冒泡排序技术,
使用
C
语言根据相应算法编写一个程序,
实现冒
泡排序。要求仔细阅读下面的内容,编写
C
程序,上机通过,并观察其结果,
写出实验报告书。
二、实验内容和原理
内容:用冒泡排序对顺序存储的长度为
10
的无序线性表排序。
原理:
首先,从表头开始往后扫描线性表,依次比较相邻两个元素,若前面的元素
大于后面的元素,将它们交换。
然后,从后往前扫描后面的线性表,依次比较相邻两个元素,若后面的元素
大于前面的元素,将它们交换。
对剩下的线性表重复上述过程,直到剩余表为空。此时的线性表为有序。
三、主要仪器设备
计算机一台
四、实验主程序
#include
void bub(int a[],int n);
int main(void)
{
int
a[10]={456,1564,1231,44,1,32,78,15,3,6
56},i;
for(i=0;i<10;++i)
printf("%d ",a[i]);
printf("\n");
bub(a,10);
for(i=0;i<10;++i)
printf("%d ",a[i]);
printf("\n");
getchar();
return 0;
}
void bub(int a[],int n)
{
int i,j,k,m,temp;
k=0;
m=n-1;
while(k
{
j=m;
m=0;
for(i=k;i
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
m=i;
}
j=k;
k=0;
for(i=m;i>j;--i)
if(a[i]
{
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
k=i;
}
}
}
实验结果