C语言冒泡排序和选择排序

Posted on 2021-02-06 21:54  年轻老baby  阅读(137)  评论(0)    收藏  举报

本文默认输入第一个数n代表要对n个数排序
然后由键盘输入n个数,输出排序后的结果,每个数占一行。

冒泡排序

#include <stdio.h>
#include <stdlib.h>
#include<math.h>

int main()
{
    int n;
    scanf("%d",&n);
    int a[n];
    for(int i=0; i<n; i++)
        scanf("%d",&a[i]);
    int t;
    int flag;
    for(int i=0; i<n-1; i++)
    {
        flag=0;
        for(int j=0; j<n; j++)
            if(a[j]>a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
                flag=1;
            }
        if(flag==0)
            break;
    }
    for(int i=0; i<n; i++)
        printf("%d\n",a[i]);
}

选择排序

#include <stdio.h>
#include <stdlib.h>
#include<math.h>

int main()
{
    int n;
    scanf("%d",&n);
    int a[n];
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
        int t;
    for(int min=0;min<n;min++)
        for(int i=0;i<n;i++)
    {
        if(a[min]<a[i])
        {
            t=a[min];
            a[min]=a[i];
            a[i]=t;
        }
    }
    for(int i=0;i<n;i++)
        printf("%d\n",a[i]);
}