首页 > 其他分享 >入门c语言--3---关于qsort函数的一些理解

入门c语言--3---关于qsort函数的一些理解

时间:2023-11-16 23:32:03浏览次数:38  
标签:函数 -- void 元素 qsort --- 数组 排序

  qsort函数是c语言库函数的一种,作用是将所给的数组中的元素按要求进行排序。

  qsort函数可以理解为冒泡函数的进阶,冒泡函数只能对一些如int,char等类型的数组进行排序,当遇到自主定义的struct类型的数组时便不能进行排序。此时便可以通过qsort函数进行排序。

   在使用qsort函数时要引用头文件

#include <stdlib.h>

   qsort函数基本格式

qsort(数组名,数组元素个数,单个元素大小 ,比较函数cmp);

  解释:

          数组名: 数组名为所创建的数组,数组类型可以自己创建。

          数组元素个数:可用strlen函数进行求的。

          单个元素大小:可用sizeof进行求的。

          比较函数cmp:这是由程序员自己创建的函数,用与定义比较方法来排序 。

                  

void cmp(void*e1,void*e2)//由于不知道元素类型,所以用void*指针来接收。
{
      return *((struct*)e1)->/*结构体元素*/ -*((struct*)e2)->/*结构体元素*/;
}


标签:函数,--,void,元素,qsort,---,数组,排序
From: https://blog.51cto.com/u_16285400/8433789

相关文章

  • 216-手机h5实现关闭手机前置摄像头,代码实现
    navigator.mediaDevices.getUserMedia({video:{facingMode:'user'}}).then(function(stream){constcameraPreview=document.getElementById('cameraPreview');cameraPreview.srcObject=stream;cameraStream=stream;}......
  • 如何解决AttributeError: 'DictVectorizer' object has no attribute 'get_feature_na
    这个错误通常是因为 DictVectorizer 对象没有 get_feature_names 属性。这可能是因为你使用的 sklearn 版本过低,或者是因为你没有正确地导入 DictVectorizer 类。要解决这个问题,你可以尝试升级 sklearn 版本,或者使用以下代码导入 DictVectorizer 类:fromsklearn.f......
  • Linux服务器查看资源占用情况之htop命令
    上一期我们讲到出了用top命令可以查看服务器资源占用的情况外,其实还可以采用htop命令来查看资源详情。htop命令展示的页面是一个可交互的页面,不仅可以查看所有进程对应的资源占用情况,甚至你还可以对进程进行筛选、排列、设置刷新频率、指定查看某个进程或某个用户相关的进程,甚至可......
  • Linux环境配置redis集群启动、停止脚本
    1、创建redisc脚本vim/etc/init.d/redisc2、编辑脚本内容#!/bin/sh#chkconfig:23458090#SimpleRedisinit.dscriptconceivedtoworkonLinuxsystems#asitdoesuseofthe/procfilesystem.REDISNODE1=7001REDISNODE2=7002REDISNODE3=7003REDISNODE4=70......
  • FreeRTOS 原理 --- 最少剩余可用栈 与 栈溢出检查
    函数 uxTaskGetStackHighWaterMark()可用于获取任务的最少剩余可用栈#if(INCLUDE_uxTaskGetStackHighWaterMark==1)UBaseType_tuxTaskGetStackHighWaterMark(TaskHandle_txTask){TCB_t*pxTCB;uint8_t*pucEndOfStack;UBaseType_tuxRetur......
  • 字符串哈希算法
    一、字符串哈希:将一串字符串映射成一个整数,并用它来代替字符串进行比较。这样俩个字符串的比较就变成俩个整数的比较,可以将时间复杂度减少至O(1)二、哈希函数:为了将字符串转化为整数,需要一个哈希函数hash,使得以下条件成立:如果字符串s==t那么hash(s)==hash(t)。一般情况下采......
  • Netty-基础篇
    核心组件EventLoopGroup概念:由一个或多个EventLoop组成的组,用于处理所有的Channel的I/O操作,可以将其看作是一个线程池。1.包含多个EventLoop。2.EventLoopGroup将为每个新创建的Channel分配一个EventLoop。在每个Channel的整个生命周期内,所有的操作都将由相同的Thread执行。3......
  • Java数组05:数组的使用
    publicclassArrayDemo03{publicstaticvoidmain(String[]args){int[]arrays={1,2,3,4,5};//打印全部的数组元素for(inti=0;i<arrays.length;i++){System.out.println(arrays[i]);}System.out.pr......
  • [ABC288D] Range Add Query
    先考虑将原序列差分一下,事实上,我们对于这类每次可以操作一个区间减去固定值的时候,我们一般都需要差分,因为差分后,我们的操作实际上相当于**在差分序列上修改两个点**,这个时候的问题是好考虑的。这时候问题转化为,我们每次可以选择两个距离恰好为$k+1$的点,将$l$加上$w$,将$l......
  • 数组类算法题——合并非递减数组
    合并非递减数组题目:给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应......