将多个整数序列按从小到大的顺序排列

img


#include <stdio.h>

#include <stdlib.h>
#include <stdbool.h>

void sort(int a[],int n)//n为数组a的元素个数
{
    //最多进行N-1轮比较
    for(int i=0; i<n-1; i++)
    {
        bool isSorted = true;
        //每一轮比较前n-1-i个,即已排序好的最后i个不用比较
        for(int j=0; j<n-1-i; j++)
        {
            if(a[j] > a[j+1])
            {
                isSorted = false;
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1]=temp;
            }
        }
        if(isSorted)
            break; //如果没有发生交换,说明数组已经排序好了
    }
}
int main()
{
    int n;
    scanf("%d\n", &n);
    int a[n];
    for(int i=0; i<n; i++)
    {
        scanf("%d", &a[i]);
    }
    sort(a, n);
    printf("\n");
    for(int i=0; i<n; i++)
        printf("%d  ", a[i]);
}