冒泡(起泡)排序。

    技术2025-07-16  4

    冒泡(起泡)排序。

    #include<stdio.h> #define TRUE 1 #define FALSE 0 void bubble_sort(int a[],int n) { int i,j,t,change; for(i=n-1,change=TRUE;i>=1&&change;--i)//进行n-1趟循环 { change=FALSE; for(j=0;j<i;++j)//在这一趟循环中 由小到大排序数组a的前i个数 { if(a[j]>a[j+1])//由小到大排序,只要这一趟有一趟符合if的排序条件,就改变change为1 { t=a[j]; a[j]=a[j+1]; a[j+1]=t; change=TRUE; } } } } int main() { int b[6]; int length=sizeof(b)/sizeof(b[0]); int n=length; printf("请输入%d个整数:", n); int i; for(i=0;i<n;i++) { scanf("%d",&b[i]); } bubble_sort(b,n); printf("该数组由小到大的排序结果为:"); for(i=0;i<n;i++) { printf("%d ",b[i]); } return 0; }

    在VS2019下,需将源文件的scanf改为scanf_s:

    #include<stdio.h> #define TRUE 1 #define FALSE 0 void bubble_sort(int a[], int n) { int i, j, t, change; for (i = n - 1, change = TRUE; i >= 1 && change; --i)//进行n-1趟循环 { change = FALSE; for (j = 0; j < i; ++j)//在这一趟循环中 由小到大排序数组a的前i个数 { if (a[j] > a[j + 1])//由小到大排序,只要这一趟有一趟符合if的排序条件,就改变change为1 { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; change = TRUE; } } } } int main() { int b[6]; int length = sizeof(b) / sizeof(b[0]); int n = length; printf("请输入%d个整数:", n); int i; for (i = 0; i < n; i++) { scanf_s("%d", &b[i]); } bubble_sort(b, n); printf("该数组由小到大的排序结果为:"); for (i = 0; i < n; i++) { printf("%d ", b[i]); } return 0; }
    Processed: 0.013, SQL: 9