当前位置: 首页 > 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;
}

相关文章:

(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*类型&#xff0c;每次只交换一个字节,直到将int*的四个字节全部交换一遍 { int i 0; f…...

【Java-LangChain:使用 ChatGPT API 搭建系统-11】用 ChatGPT API 构建系统 总结篇

第十一章&#xff0c;用 ChatGPT API 构建系统 总结篇 本课程详细介绍了 LLM 工作原理&#xff0c;包括分词器&#xff08;tokenizer&#xff09;的细节、评估用户输入的质量和安全性的方法、使用思维链作为 Prompt、通过链式 Prompt 分割任务以及返回用户前检查输出等。 本课…...

3D 生成重建004-DreamFusion and SJC :TEXT-TO-3D USING 2D DIFFUSION

3D 生成重建004-DreamFusion and SJC &#xff1a;TEXT-TO-3D USING 2D DIFFUSION 文章目录 0 论文工作1 论文方法1.1论文方法1.2 CFG1.3影响1.4 SJC 2 效果 0 论文工作 对于生成任务&#xff0c;我们是需要有一个数据样本&#xff0c;让模型去学习数据分布 p ( x ) p(x) p(x…...

机械臂抓取的产业落地进展与思考

工业机械臂是一种能够模拟人类手臂动作的机械装置&#xff0c;具有高精度、高速度和高灵活性的特点。近年来&#xff0c;随着人工智能和机器人技术的快速发展&#xff0c;机械臂在工业生产、物流仓储、医疗护理等领域得到了广泛应用。机械臂抓取技术作为机械臂的核心功能之一&a…...

【RuoYi-Cloud项目研究】【ruoyi-auth模块】登录请求(/login)分析

文章目录 0. 网关如何处理登录请求1. Controller1.1. 获取用户信息1.2. 创建用户的token 2. Service2.1. FeignClient远程查询用户信息2.2. 验证密码 3. 何时刷新 token&#xff0c;如何刷新【本文重点】 本文主要是分析登录请求 /login 的过程。 调用过程是&#xff1a;ruoyi-…...

Git 学习笔记 | Git 项目创建及克隆

Git 学习笔记 | Git 项目创建及克隆 Git 学习笔记 | Git 项目创建及克隆创建工作目录与常用指令本地仓库搭建克隆远程仓库 Git 学习笔记 | Git 项目创建及克隆 创建工作目录与常用指令 工作目录&#xff08;WorkSpace)一般就是你希望Git帮助你管理的文件夹&#xff0c;可以是…...

C++默认参数(实参)

在本文中&#xff0c;您将学习什么是默认参数&#xff0c;如何使用它们以及使用它的必要声明。在C 编程中&#xff0c;您可以提供函数参数的默认值。默认参数背后的想法很简单。如果通过传递参数调用函数&#xff0c;则这些参数将由函数使用。但是&#xff0c;如果在调用函数时…...

Datax数据同步支持SqlServer 主键自增

允许写入的SQL SET IDENTITY_INSERT table_name ON;-- 插入数据&#xff0c;指定主键值 INSERT INTO table_name (id, column1, column2, ...) VALUES (new_id_value, value1, value2, ...);SET IDENTITY_INSERT table_name OFF; 写入插件处理 核心类&#xff1a;com.alibab…...

C++开发学习笔记3

C 中枚举的使用 在C中&#xff0c;枚举常量&#xff08;Enumeration Constants&#xff09;是一种定义命名常量的方式。枚举类型允许我们为一组相关的常量赋予有意义的名称&#xff0c;并将它们作为一个独立的类型来使用。 以下是定义和使用枚举常量的示例&#xff1a; enum…...

计算机中常说的SDK是什么意思?

SDK是Software Development Kit的英文缩写&#xff0c;意思是软件开发包。 软件开发包中往往包含有多种辅助进行软件开发的内容&#xff0c;包括一些软件开发工具、文档说明、库和示例代码。这些内容能够帮助使用SDK进行软件开发的人员更好地开发程序。 SDK的作用就是简化软件…...

漏刻有时数据可视化大屏(16)数据指标KPI和柱图折线图混排

CSS样式表 /*面板*/ .pannel {width: 100%;margin-top: 30px;clear: both; }.item_l {float: left;width: 20%; /*3格60%*/margin: 0; }.item_r {float: left;width: 10%; /*4格40%*/margin: 0; }.item_child {float: left;width: 50%; }.item_child_b {float: left;width: 10…...

基于Stable Diffusion的图像合成数据集

当前从文本输入生成合成图像的模型不仅能够生成非常逼真的照片&#xff0c;而且还能够处理大量不同的对象。 在论文“评估使用稳定扩散生成的合成图像数据集”中&#xff0c;我们使用“稳定扩散”模型来研究哪些对象和类型表现得如此逼真&#xff0c;以便后续图像分类正确地分配…...

云计算:常用运维软件工具

目录 一、理论 1.云管理工具 2.虚拟化工具 3.容器管理工具 4.运维自动化工具 5.版本控制工具 6.配置管理工具 7.编辑器工具 8.代码质量工具 9.网络管理工具 10.数据库管理工具 11.数据中心设备管理工具 12.数据可视化工具 13.服务器管理工具 14.应用性能管理工具…...

多测师肖sir_高级金牌讲师_python的安装002

一、python安装 1、python包&#xff08;我们目前学习的版本是3.7&#xff09; python-3.7.3 版本 2、Python下载的官网&#xff1a;https://www.python.org/downloads/ 最新包&#xff1a;3.12 3、下载好python安装包&#xff0c;在新建一个python文件件&#xff0c;我们要…...

gin实现event stream

event stream是属于http的一种通信方式&#xff0c;可以实现服务器主动推送。原理于客户端请求服务器之后一直保持链接&#xff0c;服务端持续返回结果给客户端。相比较于websocket有如下区别&#xff1a; 基于http的通信方式&#xff0c;在各类框架的加持下不需要开发人员自己…...

pytorch中transform库中常用的函数有哪些及其用法?

在PyTorch的torchvision.transforms库中&#xff0c;有许多常用的图像变换函数可用于数据增强和预处理。下面列举了一些常用的函数及其用法&#xff1a; Resize(size): 调整图像大小为给定的尺寸。 transform transforms.Resize((256, 256))RandomCrop(size, paddingNone): 随…...

抖音手机实景无人直播间怎么搭建?

手机无人直播已成为用户直播和商家直播带货的一项热门技术趋势&#xff0c;为消费者提供了全新的观看体验。无人直播&#xff0c;顾名思义&#xff0c;即通过无人直播软件或数字人来进行无人直播。这一技术的广泛应用&#xff0c;不仅为短视频渠道带来了更丰富的玩法&#xff0…...

【新书推荐】当 Python 遇到 ChatGPT —— 自动化办公落地

文章目录 当 Python 遇到 ChatGPT&#xff1a;一种强大的组合1. 文本生成2. 自动翻译3. 对话生成4. 情感分析 新书推荐《Python自动化办公应用大全&#xff08;ChatGPT版&#xff09;&#xff1a;从零开始教编程小白一键搞定烦琐工作&#xff08;上下册&#xff09;》前言内容简…...

RSA攻击:Smooth攻击

目录 前言&#xff1a;缘起 P-1光滑攻击 P1光滑攻击 前缀知识 Lucas-Subsquence(卢卡斯序列) 编码实现与理解 小试牛刀 [NCTF 2019]childRSA 引用 前言&#xff1a;缘起 Smooth攻击(光滑攻击)&#xff0c;在最近刷题的时候总是能偶尔蹦跶到我的脑子里面。不是天天遇见它&am…...

什么是位域和位段?如何定义和使用位域?

位域&#xff08;Bit Fields&#xff09;是C语言中一种用于在数据结构中以位为单位对数据进行精确控制的技术。它们允许程序员将一个整数字段分割成多个更小的部分&#xff0c;每个部分可以存储不同的信息。位域通常在对内存节省要求高、数据压缩或硬件寄存器描述等情况下使用。…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...