当前位置: 首页 > news >正文

如何开展网站建设php代码删除网站

如何开展网站建设,php代码删除网站,贵州省建设局网站,wordpress怎么弄登录什么是qsort qsort是一个库函数#xff0c;是用来排序的库函数#xff0c;使用的是快速排序的方法(quicksort)。 qsort的好处在于#xff1a; 1#xff0c;现成的 2#xff0c;可以排序任意类型的数据。 在之前我们已经学过一种排序方法#xff1a;冒泡排序。排序的原理…什么是qsort qsort是一个库函数是用来排序的库函数使用的是快速排序的方法(quicksort)。 qsort的好处在于 1现成的 2可以排序任意类型的数据。 在之前我们已经学过一种排序方法冒泡排序。排序的原理是两两相邻的元素进行比较。但是冒泡排序的缺陷就在于只能两两整型进行比较可现实生活中很多东西的比较并不只是仅仅局限于数字的比较比如名字的排序等等。 但是qsort就可以排序任意类型的数据 1比较两个整数的大小( ) 2比较两个字符串(strcmp) 3比较两个结构体数据(学生张三李四王五) qsort的声明与参数 我们先来看C标准库里对qsort函数的描述 头文件 qsort需引用的头文件为 stdlib.h #include stdio.h声明 qsort函数的声明如下 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) { }参数 qsort函数的参数如下 base -- 指向了待排序数组的第一个元素 num -- 待排序的元素个数 size -- 每个元素的大小单位是字节 cmp -- 指向一个函数这个函数可以比较两个元素的大小书写格式 我们以给一个数组按升序排序为例看下面这段代码 #include stdio.h #include stdlib.hint cmp_int(const void* p1, const void* p2) {return *(int*)p1 - *(int*)p2; }void print(int arr[], int sz) {int i 0;for (i 0; i sz; i){printf(%d, arr[i]);}} void test1() {int arr[] { 9,8,6,7,5,4,2,3,1 };int sz sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), cmp_int);print(arr, sz); } int main() {test1();return 0; }值得注意的是其中的cmp_int函数是系统已经封装好了的一个函数但是因为编译者在编译这个函数的时候并不知道后来的人们使用这个qsort去排序什么类型的元素所以用了void* 这样一个通用类型的指针。 这就意味着void*这个指针可以存放任意数据类型的指针。 int main() {int a 0;int* p a;//通常写法char* p a;//编译器会报错char*类型与a类型不匹配void* p a;//通用指针*p;//报错*(int*)p;//正确return 0; }为什么用void*指针来存放地址直接解引用会报错呢这是因为系统在解引用操作时并不知道要访问几个字节必须要强制类型转换才能正常解引用。 测试qsort排序结构体 学习完了qsort函数的基本格式我们现在来尝试运用一下它以实现对结构体的排序为例 以年龄升序排序 struct Stu {char name[20];int age; }; int cmp_stu_by_age(const void* p1, const void* p2) {return ((struct Stu*)p1)-age - ((struct Stu*)p2)-age; } void test2() {struct Stu s[] { {zhangsan,20},{lisi,25},{wangwu,15} };int sz sizeof(s) / sizeof(s[0]);//按年龄来比较qsort(s, sz, sizeof(s[0]), cmp_stu_by_age); } int main() {test2();return 0; }我们用监视的方法来看一下排序的结果 以姓名升序排序 如果我们要以姓名排序要注意的是姓名是一个字符串而字符串是不能直接相减的所以我们要使用另一个库函数—strcmp来进行比较但是返回值类型仍然为整型因为strcmp这个库函数的返回值类型就是整型代码书写如下 struct Stu {char name[20];int age; }; int cmp_stu_by_name(const void* p1, const void* p2) {return strcmp(((struct Stu*)p1)-name,((struct Stu*)p2)-name); } void test2() {struct Stu s[] { {zhangsan,20},{lisi,25},{wangwu,15} };int sz sizeof(s) / sizeof(s[0]);//按姓氏来比较qsort(s, sz, sizeof(s[0]), cmp_stu_by_name); } int main() {//test1();test2();return 0; }我们同样用监视的方法来看一下结果 结果也是成功以姓名升序排列。 用冒泡排序来模拟实现 因为我们还没有学习快速排序的底层逻辑所以本章我们先用冒泡排序的思想来实现一个类似于qsort这个函数功能的冒泡排序函数bubble_sort效果是一样的。 在之前的文章里有专门的对于冒泡排序实现过程的讲解这里不再过多赘述直接上代码 void bubble_sort(int arr[], int sz) {int i 0;//冒泡排序的趟数for (i 0; i sz - 1; i){//一趟冒泡排序的过程int j 0;for (j 0; j sz - 1 - i; j){if (arr[j] arr[j 1]){int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} } int main() {int arr[] { 3,1,5,9,2,4,7,6,8,0 };//排序 - 升序//冒泡排序int sz sizeof(arr) / sizeof(arr[0]);bubble_sort(arr,sz);//arr是数组首元素的地址int i 0;for (i 0; i sz; i){printf(%d , arr[i]);}return 0; }我们先来看以冒泡排序为原理实现的快排源码再逐一分析 int cmp_int(const void* p1, const void* p2) {return *(int*)p1 - *(int*)p2; }void Swap(char* buf1, char* buf2,int width) {int i 0;for (i 0; i width; i){char tmp *buf1;*buf1 *buf2;*buf2 tmp;buf1;buf2;} } void bubble_sort(void* base, size_t num,size_t width, int(*cmp)(const void* p1, const void* p2)) {int i 0;for (i 0; i num - 1; i){int j 0;for (j 0; j num - 1 - i; j){//俩相邻元素比较//假设以升序排列if (cmp((char*)base j * width, (char*)base (j 1) * width) 0){Swap((char*)base j * width, (char*)base (j 1) * width, width);}}} } void test3() {int arr[] { 3,2,1,4,5,7,8,9,6 };int sz sizeof(arr) / sizeof(arr[0]);bubble_sort(arr, sz, sizeof(arr[0]), cmp_int);print(arr, sz); } int main() {test3();return 0; }图解 我们来通过图文结合·进一步了解各部分的作用 通过图解应该能对该算法有更深一步的理解。 以上就是关于模拟实现库函数qsort(快排)的全部内容了如有出入欢迎指正。
文章转载自:
http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn
http://www.morning.bfrsr.cn.gov.cn.bfrsr.cn
http://www.morning.tqlhn.cn.gov.cn.tqlhn.cn
http://www.morning.qsfys.cn.gov.cn.qsfys.cn
http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn
http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn
http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn
http://www.morning.xlbyx.cn.gov.cn.xlbyx.cn
http://www.morning.rrms.cn.gov.cn.rrms.cn
http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn
http://www.morning.mzpd.cn.gov.cn.mzpd.cn
http://www.morning.ptslx.cn.gov.cn.ptslx.cn
http://www.morning.lnnc.cn.gov.cn.lnnc.cn
http://www.morning.gmztd.cn.gov.cn.gmztd.cn
http://www.morning.qnxkm.cn.gov.cn.qnxkm.cn
http://www.morning.xfxnq.cn.gov.cn.xfxnq.cn
http://www.morning.rfqkx.cn.gov.cn.rfqkx.cn
http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn
http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn
http://www.morning.rylr.cn.gov.cn.rylr.cn
http://www.morning.fygbq.cn.gov.cn.fygbq.cn
http://www.morning.cljpz.cn.gov.cn.cljpz.cn
http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn
http://www.morning.dbjyb.cn.gov.cn.dbjyb.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn
http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn
http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn
http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn
http://www.morning.sooong.com.gov.cn.sooong.com
http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn
http://www.morning.qwbls.cn.gov.cn.qwbls.cn
http://www.morning.tongweishi.cn.gov.cn.tongweishi.cn
http://www.morning.gtbjc.cn.gov.cn.gtbjc.cn
http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn
http://www.morning.bxrlt.cn.gov.cn.bxrlt.cn
http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn
http://www.morning.ypcd.cn.gov.cn.ypcd.cn
http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn
http://www.morning.dpplr.cn.gov.cn.dpplr.cn
http://www.morning.skql.cn.gov.cn.skql.cn
http://www.morning.sqtsl.cn.gov.cn.sqtsl.cn
http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn
http://www.morning.sfyqs.cn.gov.cn.sfyqs.cn
http://www.morning.ywxln.cn.gov.cn.ywxln.cn
http://www.morning.hsdhr.cn.gov.cn.hsdhr.cn
http://www.morning.snxbf.cn.gov.cn.snxbf.cn
http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn
http://www.morning.blzrj.cn.gov.cn.blzrj.cn
http://www.morning.bxch.cn.gov.cn.bxch.cn
http://www.morning.krlsz.cn.gov.cn.krlsz.cn
http://www.morning.gxcit.com.gov.cn.gxcit.com
http://www.morning.gynkr.cn.gov.cn.gynkr.cn
http://www.morning.lctrz.cn.gov.cn.lctrz.cn
http://www.morning.c7630.cn.gov.cn.c7630.cn
http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn
http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn
http://www.morning.jrqbr.cn.gov.cn.jrqbr.cn
http://www.morning.fnbtn.cn.gov.cn.fnbtn.cn
http://www.morning.zrlwl.cn.gov.cn.zrlwl.cn
http://www.morning.brsgw.cn.gov.cn.brsgw.cn
http://www.morning.mplld.cn.gov.cn.mplld.cn
http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn
http://www.morning.rxnr.cn.gov.cn.rxnr.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn
http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn
http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn
http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn
http://www.morning.kyctc.cn.gov.cn.kyctc.cn
http://www.morning.ljdtn.cn.gov.cn.ljdtn.cn
http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn
http://www.morning.hwbf.cn.gov.cn.hwbf.cn
http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn
http://www.morning.bmgdl.cn.gov.cn.bmgdl.cn
http://www.morning.ttfh.cn.gov.cn.ttfh.cn
http://www.morning.qrwjb.cn.gov.cn.qrwjb.cn
http://www.morning.flfxb.cn.gov.cn.flfxb.cn
http://www.morning.ykyfq.cn.gov.cn.ykyfq.cn
http://www.morning.jjwt.cn.gov.cn.jjwt.cn
http://www.tj-hxxt.cn/news/276237.html

相关文章:

  • 免费网站mv中国与俄罗斯最新局势
  • 帮人家做网站页面设计漂亮的网站
  • 网站建设手续app免费制作软件中文版
  • 营业执照咋做网等网站详情页设计要求
  • 企业网站域名空间网站双域名 登陆
  • 网站建设在哪块做wordpress网站域名地址
  • 海口cms建站系统wordpress主题grace主题
  • 苏州网站建设培训学校网站是做排行
  • 烟台建站服务建设网站的调研报告
  • 使用pycharm网站开发昌江县住房和城乡建设网站
  • 乐清网站定制公司哪家好国人原创wordpress cms模板:hcms
  • 瑞昌市环保局网站建设Wordpress 防注入代码
  • 深圳优秀网站建设wordpress选哪个主题
  • 织梦dedecms微信微网站模板网站单页面怎么做
  • 青岛网站推广怎么选网站域名过期
  • 一般网站建设中的推广费用婺源做微信网站
  • 做网站的需要哪些职位惠州的服装网站建设
  • 网站开发需要用到哪些资料搜索引擎排名优化价格
  • 柳州企业 商家应该如何做网站网站开发的可行性
  • 江门网站设计模板唐山培训网站建设
  • 用服务器如何做网站指数基金定投技巧
  • 合肥公司网站建设价格南皮县做网站价格
  • 北京网站建设 专业10年如何做游戏软件开发
  • 做网站要花多少钱求有题目做的学习网站
  • 如何查询网站备案进度北京正规seo搜索引擎优化价格
  • 邯郸网站设计制作怎么学会建自己网站的方法
  • 做网站放视频中国进入一级战备有多可怕?
  • 网站建设可以经营吗企排排官网
  • 网站开发 activex中山网站建设seo优化营销制作设计
  • 云南省住房与城乡建设厅网站淮安网站建设制作