m0_58337376 2021-11-25 16:10 采纳率: 57.1%
浏览 26

冒泡排序使用指针,排序结果出现错误

问题遇到的现象和发生背景

想要完成一个冒泡排序,但排序结果不是我想要的

问题相关代码,请勿粘贴截图
#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int cmp_int(const void*e1,const void*e2)
{
    return *(int*)e1 - *(int*)e2;
}
void Swp(char*buf1,char*buf2,int width)
{
    int i = 0;
    for ( i = 0; i < width; i++)
    {
        char cmp = *buf1;
        *buf1 = *buf2;
        *buf2 = cmp;
        buf1++;
        buf2++;
    }
}
void bubble_sort(void *base,int sz,int width,int(*cmp)(void *e1,void *e2))
{
    int i = 0;
    for ( i = 0; i < sz-1; i++)
    {
        int j = 0;
        for ( j = 0; j < sz-1-i; j++)
        {
            if(cmp((char*)base+j*width,(char*)base+(j+1)*width)>0);
            {
                Swp((char*)base + j * width, (char*)base + (j + 1) * width, width);
            }
        }
    }
}
void test1()
{
    int arr[10] = {9,8,7,2,5,4,3,6,1,0};
    int sz = sizeof(arr) / sizeof(arr[0]);
    bubble_sort(arr,sz,sizeof(arr[0]),cmp_int);
}
int main()
{
    test1();
    return 0;
}

运行结果及报错内容

0,1,6,3,4,5,2,7,8,9

我的解答思路和尝试过的方法

使用冒泡排

我想要达到的结果

0,1,2,3,4,5,6,7,8,9

  • 写回答

1条回答 默认 最新

  • 於黾 2021-11-25 16:26
    关注

    冒泡排序要判断大小啊,你这都没写if,无脑翻转啊

    评论

报告相同问题?

问题事件

  • 创建了问题 11月25日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估