起泡法排序 用起泡法对10个数由小到大排序

这个起泡法不太理解,而且有一点不会敲程序,希望有人可以帮忙敲程序,让我比对一下,谢谢啦.

冒泡排序示例:


#include<stdio.h>

// 从后往前冒泡
void sort(int a[],int n)
{
    int i,j,t,noswap;
    for(i=0;i< n-1; i++)
    {
        noswap=1;
        for(j=n-1;j>i;j--)
            if(a[j-1]>a[j])
            {
                t=a[j-1];
                a[j-1]=a[j];
                a[j]=t;
                noswap=0;
            }
        if(noswap)    
            break;
    }
}

// 从前往后冒泡
void sort1(int a[],int n)
{
    int i,j,t,noswap;
    for(i=0;i< n-1; i++)
    {
        noswap=1;
        for(j=0;j<n-1-i;j++)
            if(a[j+1]<a[j])
            {
                t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
                noswap=0;
            }
        if(noswap)  
            break;
    }
}

int main() 
{
     
    int n;
    printf("Input n:");
    scanf("%d", &n);
     
    printf("Input %d numbers:", n);

    int a[n];
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }

    sort1(a, n);

    printf("Sorting results:");
    for (int i = 0; i < n; i++) 
    {
        printf("%d ", a[i]);
    }
    return 0;
}

参考,需要自定义数组的话你自己修改下;

#include <stdio.h>

int main() {
    int arr[10] = {6, 2, 8, 1, 5, 9, 3, 7, 4, 0};

    // 冒泡排序
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    // 输出排序结果
    printf("排序后的数组:\n");
    for (int i = 0; i < 10; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}