代码如下
#include <stdio.h>
#include <stdlib.h>
//冒泡排序
int MaoPaoSort(int S[], int n){
int i, j, temp;
for(i = 0 ;i < n-1 ;i++){
bool flag = false; //定个标志用于判断排序是否提前几轮完成(如果元素没有发生交换则提前完成排序)
for ( j = 0; j < n-1; j++)
{
if (S[j] > S[j+1]) //如果S[j]>S[j+1]那么S[j]后移
{
temp = S[j+1]; //S[j]后移操作(交换元素次序)
S[j+1] = S[j];
S[j] = temp;
flag = true; //元素发生交换,flag = true
}
}
if (flag = false) //元素没有发生交换,排序提前完成
{
break; //跳出循环
}
}
return 1;
}
int main(){
int n;
printf("请输要排序数的个数:");
scanf("%d", &n);
int S[n];
printf("请输入要排序的数,使用空格隔开:");
for (int i = 0; i < n; i++){ //6 84 15 2 65 12 5 6 1 0
scanf ("%d", &S[i]);
}
if (MaoPaoSort(S, n)){
printf("排序成功:");
for (int i = 0; i < n; i++)
{
printf("%d ",S[i]);
}
printf("\n");
}
system("pause");
}