C语言中的快速排序库函数

2023-11-11

前言

由于自己的记性一直不好,总是记不住c语言中的快速排序函数,于是自己写下博客来记录一下。

快速排序库函数

c语言中的快速排序库函数如下(注意:库函数是在stdlib.h头文件中)qsort(arr,length,size_t,cmp),其中arr代表要排序的数组名,length代表数组的长度 ,size_t代表数组元素的大小,cmp定义为
如何比较的的函数,cmp函数可如下定义:
int Cmp(const void *a,const void *b){
    return *(type *)a - *(type *)b;
}其中type代表元素的类型,如int,char等
此时代表函数为非递减排序,若是return*(type*)b-*(type*)a,则是代表非递增排序。
例子如下:
#include<stdio.h>
#include<stdlib.h>
int IntCmp(const void *a,const void *b){//非递减比较函数
    return *(int *)a - *(int *)b;
}
int CharCmp(const void *a,const void *b){//非递减比较函数
    return *(char *)a - *(char *)b;
}
int CharCmp1(const void *a,const void *b){//非递增比较函数
    return *(char *)b - *(char *)a;
}
int IntCmp1(const void *a,const void *b){//非增比较函数
    return *(char *)b - *(char *)a;
}
int main(void)
{
    int a[10] = {0, 6, 3, 1, 7, 5, 8, 9, 2, 4};
    qsort(a, 10, sizeof(int), IntCmp);
    //非递减排序
    for (int i = 0; i < 10;i++){
        printf("%d\t", a[i]);
    }
    printf("\n");
    char b[10] = {'v', 'f', 'd', 'r', 't', 'y', 'e', 's', 'e', 'w'};
    qsort(b, 10, sizeof(char), CharCmp);
    //非递减排序
     for (int i = 0; i < 10;i++){
        printf("%c\t", b[i]);
    }
    printf("\n");
    qsort(a, 10, sizeof(int), IntCmp1);
    //非递增排序
     for (int i = 0; i < 10;i++){
        printf("%d\t", a[i]);
    }
    printf("\n");
    qsort(b, 10, sizeof(char), CharCmp1);
    //非递增排序
     for (int i = 0; i < 10;i++){
        printf("%c\t", b[i]);
    }
    getchar();
    getchar();

    return 0;
}

结果如下

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中的快速排序库函数 的相关文章

随机推荐

  • lnmp架构--redis数据库(redis结合mysql,自动同步)

    文章目录 1 redis结合mysql 1 1 lamp架构搭建 1 2 server13上启动redis server14安装mysql 1 3 测试文件配置 1 4 访问测试 2 redis与mysql的自动同步 2 1 整体流程框图
  • Leetcode11. 盛水最多的容器

    答案 class Solution public int maxArea int height int max 0 int left right left height 0 right height height length 1 for
  • 字节跳动、今日头条、阿里爸爸都在使用Flutter,你还有拒绝的理由?

    前言 Flutter是谷歌的移动端跨平台UI框架 可以快速在iOS和Android上构建高质量的原生用户界面 Flutter可以与现有的代码一起工作 在全世界 Flutter正在被越来越多的开发者和组织使用 并且Flutter是完全免费 开
  • 001--STM32使用--TIM8的PWM输出

    void TIM8 PWM Init u16 arr u16 psc GPIO InitTypeDef GPIO InitStructure TIM TimeBaseInitTypeDef TIM TimeBaseStructure TIM
  • 深度学习Pytorch框架学习-------安装torch避坑指南

    如果想要使用torch进行深度学习环境的搭建 那么首要的目标应该是从显卡驱动开始 而不是直接直接安装pytorch 而事实上对于大多数新手而言 都是跳过了前面的重要步骤 直接选择安装pytoch 这样操作的结果就是出现各种各样的bug 代码
  • Linux查看用户属于哪些组或组下有哪些用户

    查看所有用户 compgen 是 bash 的内置命令 它将显示所有可用的命令 别名和函数 compgen u 查看当前用户属于那些组 groups 查看某个用户属于哪些组 groups USERNAME 查看系统有哪些组 getent g
  • 【C++】模拟实现STL容器:list

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 list的介绍 二 list的排序 三 迭代器 1 l
  • Window10 Mysql服务端安装

    一 下载mysql 点击 Mysql安装包下载 选择下面那个文件 比较大的 下载 不想下载这个版本的也可以选择右侧的Looking for previous GA versions No thanks just start my downl
  • latex在vscode中的使用

    latex和endnote maketile 显示author之类的信息 在 begin document 下使用 maketitle 一行后面加 可以换行 latex在vscode https zhuanlan zhihu com p 1
  • Yolov5权重 预训练模型 V4.0版本

    首先用bash weights download weights sh在主目录执行 下载模型要比直接去release快很多 不过你可能更想要这个 链接 https pan baidu com s 1Wc1jpP wcCKfwtWf iNml
  • Python pillow扩展库图像编程

  • ClickHouse相关SQL总结:创建表、分区主键排序设置、删除表、删除分区、修改表字段

    文章目录 表操作 创建数据库 创建表 删除表 清空表 删除表某个分区 表字段column操作 添加字段 删除字段 修改字段 修改字段名称 表操作 创建数据库 create database radar 创建表 CREATE TABLE ra
  • 【设计模式】MVC 模式

    MVC 模式代表 Model View Controller 模型 视图 控制器 模式 这种模式用于应用程序的分层开发 Model 模型 模型代表一个存取数据的对象或 JAVA POJO 它也可以带有逻辑 在数据变化时更新控制器 View
  • 可重入锁(ReentrantLock为例)

    什么是可重入锁 STFW得到以下两种主流解释 解释一 可重入就是说某个线程已经获得某个锁 可以再次获取锁而不会出现死锁 解释二 可重入锁又称递归锁 是指同一个线程在外层方法获取锁的时候 再进入该线程的内层方法会自动获取锁 前提是锁对象得是同
  • 关于C++编程中引入头文件的顺序

    头文件顺序 场景 头文件顺序 场景 此文仅记录在编写程序的时候 h或者 cpp引入头文件时 标准库头文件 自己定义的类的头文件的先后顺序 c 兼容c语言 故而有时还是涉及到c语言的标准库头文件的引入 这里只记录其引入的顺序 头文件顺序 头文
  • Open3D Ransac拟合分割多个平面(方法二)

    目录 一 算法原理 二 代码实现 三 结果展示 四 测试数据 一 算法原理 算法的核心原理还是RANSAC拟合平面 具体理论可参考 Open3D 使用RANSAC分割平面 只是对代码稍加修改使其适用于分割点云数据中的多个平面 二 代码实现
  • SSM实现网上商城 有聊天功能

    1 项目介绍 实现一个网上商城 商品信息展示 购物车 订单管理 个人中心 商品评价 商品搜索 地址管理 聊天 后台管理 商品增删改查 分类管理 活动管理 客服聊天回复 2 开发环境 开发环境 IDEA eclipse Tomcat8 5 数
  • centos6.5破解,没成功

    安装aircrack ng make make install 新建crack文件夹下操作以下步骤 方便 监听wlan0 iwconfig eth0有线网卡 wlan0无线网卡 sudo airmon ng start wlan0 启动 s
  • Anaconda bug

    报错如下 DEBUG urllib3 connectionpool Starting new HTTPS connection 1 repo anaconda com 443 DEBUG urllib3 connectionpool Sta
  • C语言中的快速排序库函数

    前言 由于自己的记性一直不好 总是记不住c语言中的快速排序函数 于是自己写下博客来记录一下 快速排序库函数 c语言中的快速排序库函数如下 注意 库函数是在stdlib h头文件中 qsort arr length size t cmp 其中