欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言冒泡排序将一个数组按照从小到大进行排序

程序员文章站 2022-04-04 11:05:35
...

例如 int a[10] = {0,5,2,3,6,9,8,7,4,1}
对其10个整数由小到大进行排序
思想:冒泡排序

实现一:

#include<stdio.h>
int main()
{
    int i = 0;
    int a[10] = {0,5,2,3,6,9,8,7,4,1};
    int j = 0;
    int tmp = 0;
    int m = sizeof(a) / sizeof(a[0]);  //s数组大小
    for (i=0; i<m-1; i++)    //比较m-1次
    {
        for (j = 0; j < m-i-1; j++)   // 最后一次比较a[m-i-1]与a[m-i-2]
        {
            if (a[j]>a[j+1])    //如果a[j]比a[j+1]大则交换内容
            {
                tmp = a[j+1];
                a[j+1] = a[j];
                a[j] = tmp;
            }
        }
    }
    for (i=0; i < m; i++)
    {
        printf(" %d ", a[i]);   //打印
    }
    printf(" \n ");
    return 0;
}

C语言冒泡排序将一个数组按照从小到大进行排序

实现二:
自定义sort函数

#include<stdio.h>
void sort(int a[], int m)
{
    int i = 0;
    int j = 0;
    int tmp = 0;
    for (i = 0; i<m - 1; i++)
    {
        for (j = 0; j < m - i - 1; j++)
        {
            if (a[j]>a[j + 1])
            {
                tmp = a[j + 1];
                a[j + 1] = a[j];
                a[j] = tmp;
            }
        }
    }
}
int main()
{
    int i = 0;
    int a[10] = {0,5,2,3,6,9,8,7,4,1};
    int m = sizeof(a) / sizeof(a[0]);
    sort(a, m);
    for (i=0; i < m; i++)
    {
        printf(" %d ", a[i]);
    }
    printf(" \n ");
    return 0;
}