//未优化——冒泡排序算法
#include<stdio.h>
//升序
void bubblesort_1( int a[],int n )
{
int i,j,t;
for( i=0;i<n-1;i++ ){
//第i轮排序
for( j=0;j<n-i-1;j++ ){
//交换两个元素位置
if( a[j]>a[j+1] ){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
//降序
void bubblesort_2( int a[],int n )
{
int i,j,t;
for( i=0;i<n-1;i++ ){
//第i轮排序
for( j=0;j<n-i-1;j++ ){
//交换两个元素位置
if( a[j]<a[j+1] ){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main()
{
int a[6]={2,1,34,10,45,3};
int i;
bubblesort_1( a,6 );
printf("升序:");
for( i=0;i<6;i++ ){
printf("%d ",a[i]);
}
bubblesort_2( a,6 );
printf("\n降序:");
for( i=0;i<6;i++ ){
printf("%d ",a[i]);
}
return 0;
}
针对问题:
数据的顺序排好之后,冒泡算法仍然会继续进行下一轮的比较,直到a