当前位置: 首页 > news >正文

(c语言)用冒泡排序模拟实现qsort()函数交换整数

#include<stdio.h>    
int cmp(const void* x1, const void* x2)
{
    return (*(int*)x1 - *(int*)x2);
}
void Swap(char* x, char* y, int width)  //将两个数改为char*类型,每次只交换一个字节,直到将int*的四个字节全部交换一遍
{
    int i = 0;
    for (i = 0; i < width; i++)
    {
        char tmp = *x;
        *x = *y;
        *y = tmp;
        x++;
        y++;
    }
}
sqort_moni(int* arr,int sz,int width, int (*cmp)(const void*, const void*))
{
    int i,j;
    for (i = 0; i < sz - 1; i++)
    {
        int flag = 1;
        for (j = 0; j < sz - 1 - i; j++)
        {
            if (cmp((char*)arr + j * width, (char*)arr + (j + 1) * width )> 0) //返回值大于0,则说明x1>x2,需要顺序排列则要交换两个数
            {
                Swap((char*)arr + j * width, (char*)arr + (j + 1) * width, width);
                flag = 0;
            }
        }
        if (flag == 1)  //如果循环一整遍之后都符合条件,则直接跳出循环
        {
            break;
        }
    }
}
int main()
{
    int arr[10] = {9,8,7,6,5,4,3,2,1,0};
    int sz = sizeof(arr) / sizeof(arr[0]);
    sqort_moni(arr,sz,sizeof(arr[0]), cmp);
    for (int i = 0; i < sz; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

http://www.lryc.cn/news/186236.html

相关文章:

  • 【Java-LangChain:使用 ChatGPT API 搭建系统-11】用 ChatGPT API 构建系统 总结篇
  • 3D 生成重建004-DreamFusion and SJC :TEXT-TO-3D USING 2D DIFFUSION
  • 机械臂抓取的产业落地进展与思考
  • 【RuoYi-Cloud项目研究】【ruoyi-auth模块】登录请求(/login)分析
  • Git 学习笔记 | Git 项目创建及克隆
  • C++默认参数(实参)
  • Datax数据同步支持SqlServer 主键自增
  • C++开发学习笔记3
  • 计算机中常说的SDK是什么意思?
  • 漏刻有时数据可视化大屏(16)数据指标KPI和柱图折线图混排
  • 基于Stable Diffusion的图像合成数据集
  • 云计算:常用运维软件工具
  • 多测师肖sir_高级金牌讲师_python的安装002
  • gin实现event stream
  • pytorch中transform库中常用的函数有哪些及其用法?
  • 抖音手机实景无人直播间怎么搭建?
  • 【新书推荐】当 Python 遇到 ChatGPT —— 自动化办公落地
  • RSA攻击:Smooth攻击
  • 什么是位域和位段?如何定义和使用位域?
  • 网络攻防备课笔记
  • Apache Solr9.3 快速上手
  • 按关键字搜索淘宝商品API接口获取商品销量、优惠价、商品标题等参数示例
  • 【外汇天眼】价格波动的节奏感:优化止盈方法!
  • VMvare虚拟机安装国产麒麟V10桌面操作系统
  • Golang--channel+waitGroup控制并发量
  • 前端【响应式图片处理】之 【picture标签】
  • js实现链式调用,查询和处理数据
  • 阿里云 腾讯云 配置二级域名并解析指向非80端口操作指南
  • 菜单子节点的写法
  • 系统架构设计:9 论软件系统架构评估及其应用