冒泡排序
1.第1个和第2个关键字比较,若第1个大那么这两个数交换。
2.第2个和第3个关键字比较,若第3个大那么这两个数交换。
3.第3个和第4个关键字比较,若第4个大那么这两个数交换。
……
n个数据的数组,最多走n-1趟
举个栗子: 我进行一个6个数据数组的冒泡排序
void Bubblesort(int R[],int n) { int i,j,temp,flag; for(i=n-1;i>=1;--i) { flag=0;//flag来标记本趟排序是否发生交换 for(j=1;j<=i;++j) { if(R[j-1]>R[j]) { temp=R[j]; R[j]=R[j-1]; R[j-1]=temp; flag=1; } } if(flag==0)//没有关键字的交换则有序结束,跳出循环 { return; } } }
主函数
int main() { int n=6; int R[6]; printf("输入6个数进行冒泡排序:\n"); for(int i=0;i<=5;++i) { scanf("%d",&R[i]); } Bubblesort(R,n); printf("输出冒泡排序后的顺序:\n"); for(i=0;i<=5;++i) { printf("%d ",R[i]); } return 1; }
运行结果