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

网站开发企业标准潍坊免费自助建站模板

网站开发企业标准,潍坊免费自助建站模板,wordpress调用百度地图,江苏省建设集团有限公司网站目录#xff1a; 1.qsort介绍 2.使⽤qsort函数 排序 整型数据 3.使⽤qsort函数 排序 结构体数据 4. qsort函数的模拟实现冒泡排序 qsort()函数 是一个 C语言编译器函数库自带的排序函数#xff0c; 它可以对指定数组#xff08;包括字符串#xff0c;二维数组#x… 目录 1.qsort介绍 2.使⽤qsort函数 排序 整型数据  3.使⽤qsort函数 排序 结构体数据  4. qsort函数的模拟实现冒泡排序 qsort()函数 是一个 C语言编译器函数库自带的排序函数 它可以对指定数组包括字符串二维数组结构体等进行排序。 头文件:stdlib.h qsort函数原型 void qsort(void *base, //指针指向的是待排序的数组的第一个元素size_t num, //是base指向的待排序数组的元素个数size_t size, //base指向的待排序数组的元素的大小字节数int (*compar)(const void *, const void *) //函数指针); compar参数是qsort函数排序的核心内容它指向一个比较两个元素的函数注意两个形参必须是const void *型同时在调用compar 函数compar实质为函数指针这里称它所指向的函数也为compar时传入的实参也必须转换成const void *型。在compar函数内部会将const void *型转换成实际类型。  如果compar返回值小于0 0那么p1所指向元素会被排在p2所指向元素的前面 。如果compar返回值等于0 0那么p1所指向元素与p2所指向元素的顺序不变 。如果compar返回值大于0 0那么p1所指向元素会被排在p2所指向元素的后面 。 因此如果想让qsort()进行从小到大升序排序 那么一个通用的compar函数可以写成这样 int compare (const void * a, const void * b){if ( *(MyType*)a *(MyType*)b )return -1;if ( *(MyType*)a *(MyType*)b )return 0;if ( *(MyType*)a *(MyType*)b ) return 1;} 如果你要将MyType换成实际数组元素的类型。 可以 //升序排序int compare (const void * a, const void * b){return ( *(int*)a - *(int*)b );//强制类型转换后进行访问}//降序排列int compare (const void * a, const void * b){return ( *(int*)b - *(int*)a );} 1.使⽤qsort函数 排序整型数据  2.使⽤qsort排序 结构体数据  #include stdio.h #include stdlib.h #include string.h struct Stu //学⽣ {char name[20];//名字int age;//年龄 };//假设按照年龄来⽐较 int cmp_stu_by_age(const void* e1, const void* e2) {return ((struct Stu*)e1)-age - ((struct Stu*)e2)-age; } //结构体变量.成员名 //结构体指针-成员名//假设按照名字来⽐较 int cmp_stu_by_name(const void* e1, const void* e2) {return strcmp(((struct Stu*)e1)-name, ((struct Stu*)e2)-name); } //strcmp - 是库函数是专⻔⽤来⽐较两个字符串的⼤⼩的//是按照对应字符串中字符的ASCII码值比较的//按照年龄来排序 void test2() {struct Stu s[] { {zhangsan, 20}, {lisi, 30}, {wangwu, 15} };int sz sizeof(s) / sizeof(s[0]);qsort(s, sz, sizeof(s[0]), cmp_stu_by_age); }//按照名字来排序 void test3() {struct Stu s[] { {zhangsan, 20}, {lisi, 30}, {wangwu, 15} };int sz sizeof(s) / sizeof(s[0]);qsort(s, sz, sizeof(s[0]), cmp_stu_by_name); }int main() {test2();//按照年龄来排序test3();//按照名字来排序return 0; } 3. qsort函数的模拟实现冒泡排序 使⽤回调函数模拟实现qsort采⽤冒泡的⽅式  #include stdio.hint int_cmp(const void * p1, const void * p2) {return (*( int *)p1 - *(int *) p2); }void swap(void *p1, void * p2, int size) //交换两个元素//void*的指针 是无具体类型的指针 { //作用是接收任何类型的地址 int i 0;for (i 0; i size; i){char tmp *((char *)p1 i);*(( char *)p1 i) *((char *) p2 i);*(( char *)p2 i) tmp;} } void bubble(void *base, int count , int size, int(*cmp )(void *, void *)) {int i 0;int j 0;for (i 0; i count - 1; i){for (j 0; jcount-i-1; j){ //实现升序看 是否0 是否进行交换if (cmp ((char *) base j*size , (char *)base (j 1)*size) 0){ //相当于冒泡排序中的arr[j]与arr[j1]swap(( char *)base j*size, (char *)base (j 1)*size, size);}}} }int main(){int arr[] { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };int i 0;bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp);//自制冒泡排序for (i 0; i sizeof(arr) / sizeof(arr[0]); i){printf( %d , arr[i]);//实现升序排列}printf(\n);return 0; } 分享到这里感谢观看
http://www.tj-hxxt.cn/news/139044.html

相关文章:

  • 专业中山建网站公司五核网站建设
  • 织梦网站怎样做seowordpress 分页标题
  • 做玩具订制网站好处溧阳网站建设制作
  • 如何网站点击率免费分销平台有哪些
  • 国内重大新闻2022搜索引擎优化的内容
  • 政务网站开发合同在小网站上做点击广告
  • 做甜品的网站网站整站优化方案
  • 怎么做套版网站互联网创业项目的效果
  • 19楼网站模板自己做企业网站用哪个软件
  • 我的网站怎么做快速刷排名的软件最好
  • 网站建设维保合同微信公众号运营推广方案
  • 海南澄迈住房和城乡建设厅网站个人是否可以申请网址
  • 怎么优化网站关键字app对接wordpress
  • 建站群赚钱有前途吗网站建设tlmh
  • 能利用双股铜芯电话线做网站吗福州鼓楼区网站建设
  • iis提示网站建设中app介绍网站模板
  • 网站内怎么做搜索建设京东物流网站的目标是什么
  • 建网站 开发app洛阳网站建设首选洛阳铭信科技
  • 网站 医院信息化建设潍坊专业技术人员继续教育
  • 公司建设网站有什么好处计算机网站开发书籍
  • 如何建设专题网站冶金工业建设工程定额总站网站
  • 北京网站改版哪家好广州企业管理咨询公司排名
  • 网站备案拍照是什么郑州网站制作服务
  • 郑州网站制作报价企业网站源码搜一品资源
  • 长春做企业网站多少钱微博优惠券网站怎么做
  • iis7架设网站桂林两江四湖夜游
  • 做yield网站多少钱wordpress+用户中心插件
  • 嘉兴做网站的公司企业上云解决方案
  • 做网站合肥西宁网站seo价格
  • 公司在百度怎么推广电商seo推广