2008秋-计算机软件基础-冒泡排序
/*
Title: 冒泡排序
Author: eman lee
算法功能:冒泡排序算法实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include<stdio.h>
void bubblesort(int r[],int n)
{ /*elements are stored in r[1] to r[n]*/
int i,j,flag;
int temp;
flag=1;
i=1;
while((i<n)&&(flag==1)) /*外循环控制排序的总趟数*/
{ flag=0;
for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/
if(r[j]<r[j-1]) /*相邻元素进行比较,若逆序就交换*/
{
flag=1;
temp=r[j];
r[j]=r[j-1];
r[j-1]=temp;
}
i++;
}
} /*bubblesort*/
void show(int r[] , int n)
{
/*elements are stored in r[1] to r[n]*/
int i;
for(i=1;i<=n;i++)
printf(" %d ",r[i]);
printf("\n");
}
void main()
{
int a[9]={0,38,20,46,38,74,91,12,25};
show(a,8);
bubblesort(a,8);
show(a,8);
}
Title: 冒泡排序
Author: eman lee
算法功能:冒泡排序算法实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include<stdio.h>
void bubblesort(int r[],int n)
{ /*elements are stored in r[1] to r[n]*/
int i,j,flag;
int temp;
flag=1;
i=1;
while((i<n)&&(flag==1)) /*外循环控制排序的总趟数*/
{ flag=0;
for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/
if(r[j]<r[j-1]) /*相邻元素进行比较,若逆序就交换*/
{
flag=1;
temp=r[j];
r[j]=r[j-1];
r[j-1]=temp;
}
i++;
}
} /*bubblesort*/
void show(int r[] , int n)
{
/*elements are stored in r[1] to r[n]*/
int i;
for(i=1;i<=n;i++)
printf(" %d ",r[i]);
printf("\n");
}
void main()
{
int a[9]={0,38,20,46,38,74,91,12,25};
show(a,8);
bubblesort(a,8);
show(a,8);
}