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

网店怎么做站内关键词排名优化软件

网店怎么做,站内关键词排名优化软件,wordpress太难用了,手机网站模板 导航个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.qsort函数 1.1qsort函数的参数 …

个人主页:点我进入主页

专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶

C语言刷题

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂。

目录

1.qsort函数

1.1qsort函数的参数

1.2利用qsort函数排序整形数据

1.3利用qsort函数排序结构体数据

2.模拟实现qsort函数

2.1冒泡排序

2.2代码实现


         今天主要给大家带来的是对于qsort函数的详细讲解以及使用冒泡排序模拟实现qsort函数,我们这里包括qsort函数的参数的理解和使用针对数组结构体进行升序降序排序,模拟qsort函数的参数。

1.qsort函数

1.1qsort函数的参数

        对于qsort函数,我相信大家大部分还是第一次见到这个函数,我们先进入网站cplusplus

 返回旧版,查找qsort函数

 我们看到qsort函数的头文件是stdlib.h,我们可以发现qsort函数具定义为

void qsort (void* base, size_t num, size_t size,int (*compar)(const void*,const void*));

 

        在这里base是指我们要传入的数组 ,num是指传入数组的元素个数,size是指数组一个元素的所占的字节数,int (*compar)(const void*,const void*)是一个函数指针,在这里需要我们建立一个函数

         这个函数指针的参数是void*类型,因为qsort函数可以排序任意类型的数据,使用时强制转换就可以使用。

1.2利用qsort函数排序整形数据

#include<stdio.h>
#include <stdlib.h>
int comper(const void* e1, const void* e2)
{return *(int*)e1 - *(int*)e2;
}
int main()
{int arr[5] = { 0,2,1,4,3 };int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), comper);int i;for (i = 0; i < sz; i++){printf("%d ", arr[i]);}
}

我们运行后可以得到

为升序排序,我们想要改为降序排序只需要将我们的comper函数进行修改

int comper(const void* e1, const void* e2)
{return  *(int*)e2- *(int*)e1 ;
}

运行后为降序排序。

1.3利用qsort函数排序结构体数据

#include<stdio.h>
#include <stdlib.h>
typedef struct student
{int age;char num[20];
}stu;
int comper(const void* e1, const void* e2)
{return ((stu*)e1)->age - ((stu*)e2)->age;
}
int main()
{stu arr[3] = { 20,"zhangsan",19,"libai",22,"aiqiyi" };int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), comper);int i;for (i = 0; i < sz; i++){printf("%d ", arr[i].age );}return 0;
}

在进行比较名字是我们需要用到strcmp函数具体代码如下

int comper(const void* e1, const void* e2)
{return strcmp(((stu*)e1)->num , ((stu*)e2)->num);
}

2.模拟实现qsort函数

        我们前面讲过想对数据进行排序可以使用冒泡排序,但是冒泡排序却有一些局限性,我们在这里利用冒泡排序来模拟实现qsort函数。

2.1冒泡排序

  对于冒泡排序我们主要的代码为

void bulubulu(int arr[],int sz)
{int i, j,temp;for (i = 0; i < sz - 1; i++){for (j = 0; j < sz - 1 - i; j++){if (arr[j] > arr[j + 1]){temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}

在这里我们主要就是依靠冒泡排序进行实现。

2.2代码实现

#include<stdio.h>
#include <stdlib.h>
#include <string.h>
int comper(const void* e1, const void* e2)
{return *(int*)e1 - *(int*)e2;
}
void swap(char *p,char*q,size_t sz)
{int i;char temp;for (i = 0; i < sz; i++){temp = *p;*p = *q;*q = temp;p++;q++;}
}
void bulubulu(void *base,size_t sz,size_t size)
{int i, j;for (i = 0; i < sz - 1; i++){for (j = 0; j < sz - 1 - i; j++){if (comper((char*)base + j * size, (char*)base + (j + 1) * size)>0){swap((char*)base+j*size,(char*)base+(j+1)*size,sz);}}}
}void my_qsort(void *base,size_t num,size_t size,int(*comper)(const void *e1,const void *e2))
{bulubulu(base, num, size);
}
int main()
{int arr[5] = { 0,2,1,5,3 };int sz = sizeof(arr) / sizeof(arr[0]);my_qsort(arr, sz, sizeof(arr[0]), comper);int i;for (i = 0; i < sz; i++)printf("%d ", arr[i]);}

        在这里,我们想排序一个整型数组,我们先得到数组有几个元素,每个元素占用几个字节,在我怕们的my_qsort函数中采用void*base是因为我们不知道要排序的元素是什么类型,我们进入冒泡排序也就是bulubulu函数中,在这里最为关键的是if (comper((char*)base + j * size, (char*)base + (j + 1) * size)>0)和swap((char*)base+j*size,(char*)base+(j+1)*size,sz)这两句,由于我们不知道想要排序的是什么类型,base是void*类型,想要使用swap函数和comper函数需要我们传送地址,我们将base强制转换为char*类型,我们还有一个元素占用的字节数size,再根据是第几个元素得到它的地址,在swap中我们是一个字节一个字节的进行交换。在这里comper是我们用户自己写的,其余的只需要my_qsort就可以解决。

今天的内容就结束了,希望大家可以学到很多东西。

http://www.dinnco.com/news/10944.html

相关文章:

  • 吴江市中云建设监理有限公司网站品牌推广活动策划方案
  • 有域名自己怎么做网站营销推广怎么做
  • 河南股票配资网站建设百度seo优化教程
  • 中国宣布入境最新消息2023泉州seo按天计费
  • 济南资金盘网站开发公司靠谱吗超级seo外链
  • 珠海做网站优化网址域名ip查询
  • 如何做网站服务器seo的基本工作内容
  • 旅游网站技术流程图免费网站统计工具
  • 技术支持 湖北网站建设最好的bt磁力搜索引擎
  • 做小说网站做国外域名还是国内的好网站关键词推广工具
  • 公众号的微网站怎么做的谷歌seo视频教程
  • 只做早餐的网站怎么做一个小程序
  • 网站设计与管理的软件深圳市社会组织总会
  • 江门网站建设方案西安网
  • 网站要做手机版怎么做的包头seo
  • 东莞网站优化关键词公司郑州网站营销推广公司
  • 沧州网站建设设计定制郑州网站建设用户
  • 没有网站怎么做淘宝客媒体宣传推广方案
  • 泉州做网站seo请简述网络营销的特点
  • 江苏质监站网站做资料网络运营推广是做什么的
  • php装饰公司网站源码郑州网站营销推广公司
  • 秦皇岛网站制作专家教您简单建站自助建站网
  • 英文网站如何做关键词优化官网咨询
  • B2B网站系统长春网站优化方案
  • 上海企业咨询公司网站优化网站
  • 日照网站建设吧怎么在百度免费推广
  • 公司专业做网站百度帐号
  • 网站底部留言代码新网域名
  • 一个企业可以做多个网站吗阿里数据
  • 高端大气上档次的网站免费注册推广网站