栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

三种排序C语言(冒泡、选择、快排)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

三种排序C语言(冒泡、选择、快排)

冒泡排序
for (int i = 1; i < n; i++)
{
    for (int j = 0; j < n - i; j++)
    {
        if (a[j] > a[j - 1])
        {
            int temp = a[j];
            a[j] = a[j + 1];
            a[j + 1] = t;
        }
    }
}
选择排序
for (int i = 0; i < n - 1; i++)
{
    int t = i;
    for (int j = i + 1; j < n; j++)
    {
        if (a[t] > a[j])
        {
            t = j;
        }
    }
    if (t != i)
    {
        int temp = a[i];
        a[i] = a[t];
        a[t] = temp;
    }
}
qsort(a, k, sizeof(a[0]), cmp);
快排

整形数组排序

static int cmp(const void *a, const void *b)
{
    return *(int *)a - *(int *)b;
}
qsort(a, k, sizeof(a[0]),cmp); // a为数组,k为数组长度

字符数组排序

static int cmp(const void *a, const void *b)
{
    return *(char *)a - *(char *)b;
}
qsort(a, len, sizeof(a[0]), cmp);

字符串排序

char a[][10] = {"asasd","asdsfd","sd"};
static int cmp(const void *a,const void *b)
{
    return strcmp((char *)a, (char *)b);
}
qsort(a, k, sizeof(a[0]),cmp); // k = 3;

二维数组排序

char a[][2]={1,2,3,4,2,3,4,5};
static int cmp(const void *a, const void *b)
{
    int *x = *(int **)a;
    int *y = *(int **)b;
    if (x[0] == y[0])
    {
        return x[1] - y[1];
    }
    return x[0] - y[0];
}
qsort(a, k, sizeof(a[0]), cmp); // k = 4
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号