菜鸟笔记
提升您的技术认知

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

阅读 : 20

例如 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;
}

实现二:
自定义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;
}