首页 > 其他分享 >基于qsot库函数进行排序

基于qsot库函数进行排序

时间:2023-09-03 15:32:20浏览次数:38  
标签:arr const int void sizeof 排序 qsot e2 库函数

#include <stdio.h>

#include <stdlib.h>

int cmp_int(const void* e1, const void* e2)

{ //进行比较

return (int)e1 - (int)e2;

}

int cmp_f(const void* e1, const void* e2)

{

if((float)e1 > (float)e2) { return 1; }

else if((float)e1 == (float)e2) { return 0; }

else { return -1; }

}

void test1()

{ int i = 0;

int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};

int sz_i = sizeof(arr) / sizeof(arr[0]);

qsort(arr, sz_i, sizeof(arr[0]), cmp_int);

for(i = 0; i < sz_i; i++)

{

printf("%2d",arr[i]);

}

}

void test2()

{

int i = 0;

float f[] = {9.0, 8.0, 7.0, 6.7, 5.4, 4.2, 3.9, 2.3, 1.1};

int sz_f = sizeof(f) / sizeof(f[0]);

qsort(f, sz_f, sizeof(f[0]), cmp_f);

for(i = 0; i < sz_f; i++)

{

printf("%.2f ",f[i]);

}

}

int main()

{ test1();

printf("\n");

test2();

return 0;

}

qsort进行使用时需要按照下述格式进行使用

qsort( void *base, size_t num, size_t width, int(*cmp)(const voide1,const void*e2)

void base是需要进行排序的内容

size_t num是该需排序内容的长度(个数)

size_t width 是该需排序内容的宽度(字节数)

int(*cmp)(const void*e1,const void*e2)是进行比较的函数

若比较的内容前者大于后者返回值为1

若相等则返回0

若前者小于后者则返回-1

基于qsot库函数进行排序_#qsort

标签:arr,const,int,void,sizeof,排序,qsot,e2,库函数
From: https://blog.51cto.com/u_16180341/7340795

相关文章

  • 排序算法性能总结(时间复杂度)
    学习:https://blog.csdn.net/weixin_43207025/article/details/114902065......
  • 链表实现插入排序
    将一串整型范围内的数按升序输出。数据输入样式16-53-3-54744818-245463663-9919-99990789用链表实现实例:1)结构体定义1structListNode2{3intdata;4ListNode*next;//结构体指针5ListNode*pre;//结构体指针6};2)建一个初始......
  • 快速排序
    在从小往大排的前提下,如果以左边为基数的话必须在比左边小的地方让两个指针相遇,因为在相遇时必须将相遇时候的数和基数交换,将相遇的数放在基数的位置,也就是小于基数的区域。因此如果以左边为基数的话必须右指针先动,如果以右边为基数的话必须左指针先动。图解快速排序(C++实现)_快......
  • c++ 堆排序
    堆排序主要分为两个函数:1、构建堆2、元素调整#include<iostream>usingnamespacestd;voidmaxHeap(inttree[],intn,inti){ if(i>=n) return; intlchild=i*2+1; intrchild=i*2+2; intmax=i; if(lchild<n&&tree[lchild]>t......
  • 堆排序 桶排序 基数排序
    堆排序使用数组和表示堆大小的整数heapSize表示堆:vector<int>arr{9,5,3,7,2};intheapSize=5;heapSize=5表示数组从索引0开始的5个元素表示一个堆。堆结构就是用数组实现的完全二叉树结构。求数组中索引i位置节点的父子节点:父节点:(i-1)/2左子节点:2*i+1右子节......
  • qlist 对结构体排序
    结构体排序:写法一QList<test>s;testaa;testbb;testcc;aa.num="14";bb.num="2";cc.num="3";s.append(aa);s.append(bb);s.append(cc);qSort(s.begin(),s.end(),[](consttest&infoA......
  • 常用的七大排序算法
    1.七大排序算法简述1.1选择排序算法思想:进行n轮操作在某一轮中,选择未排序的一个最小数组元素,与右侧未排序的第一个数组元素交换交换完之后,相当于向右扩大已排序的数组范围。重复2,3.直至所有数组元素已排序稳定性:不稳定假设在某一轮数组状态为:1,2,3,8,8,4。已排序的元......
  • 基数排序
     基数排序,不是基于比较的排序。过程如下:处理过程:  桶排过程:1voidBucket_sort(inta[],intexp)//exp为1按个位排序,exp为10按十位排序,exp为100按个位排序,……2{3vector<int>Bucket[20];45//按位入桶,+10是为了对付负数6for(int......
  • 数据结构与——八大经典排序算法详解
    ......
  • 错位排序
    将1到n的自然数放到1到n的n个位置,其中元素i不放在位置i,求方案总数。状态:dp[i]表示前i个位置错位排序的方案数答案:dp[n]状态转移方程:\(dp[i]=(i-1)*(dp[i-1]+dp[i-2])\)情况1:前i-1个位置有0个位置是元素与下标相同的,将元素i与前i-1个位置的任一元素对调构成错位,贡......