快速排序的简单应用及回调函数的初步理解

/*快速排序的简单应用及回调函数的初步理解
注:只是应用快速排序的算法
回调函数: 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。(摘自百科)

利用快速排序一个整型数组,一个浮点型数组,一个字符串数组。*/
//—、快速排序实现整型数组排序:
#include<stdio.h>
#include<stdlib.h>
int int_cmp(const void *elem1, const void *elem2)//int_cmp就是回调函数
{
                 return *(int *)elem1-*(int *)elem2;//只要求返回一个正整数或者负数或者零,所以直接可以用指针进行运算。必须先将void *轻质转换才能运算
}
int main()
{
                 int arr[] = {1,3,5,7,9,2,4,6,8,0};
                 int i=0;
                 int sz=sizeof (arr)/sizeof(arr[0]);
                qsort(arr,sz, sizeof(int ),&int_cmp);//int_cmp前面加不加&都可以,因为函数名就是地址,加上&增强程序的可读性。
                 for(i=0;i<sz;i++)
                                printf( "%d ",arr[i]);
                system( "pause");
                 return 0;
}
//二、实现一个浮点型数组
#include<stdio.h>
#include<stdlib.h>
int float_cmp(const void *elem1, const void *elem2)
{
                 if((*(float *)elem1>*(float *)elem2))
                                 return 1;
                 else if ((*(float *)elem1==*( float *)elem2))
                                 return 0;
                 else
                                 return -1;
}
int main()
{
                 float arr[] = {0.2f, 1.5f, 9.0f, 8.8f, 0.0f};
                 int sz = sizeof (arr)/sizeof(arr[0]);
                 int i = 0;
                qsort(arr, sz, sizeof(float ), &float_cmp);
                 for(i=0; i<sz; i++)
                {
                                printf( "%f\n", arr[i]);
                }
                system( "pause");
                 return 0;
}
//三、实现一个字符串数组
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int str_cmp(const void *elem1, const void *elem2)
{

                 return strcmp(*(char **)elem1, *(char **)elem2);

}
int main()
{
                 char *arr[]={"abcdefgh" ,"abdcefg", "bbbbb"};
    int i=0;
                 int sz = sizeof (arr)/sizeof(arr[0]);
                qsort(arr,sz, sizeof(char *),str_cmp);//str_cmp的地址传给qsort
                 for(i=0;i<sz;i++)
                {
                                printf( "%s ",arr[i]);
                }
                system( "pause");
                 return 0;
}

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值