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

做片头片尾比较好的网站qq引流推广软件哪个好

做片头片尾比较好的网站,qq引流推广软件哪个好,国家建设部网站平台,在什么网站可以接设计做引言 在计算机科学领域&#xff0c;查找是一项基本操作&#xff0c;而二分查找是一种高效的查找算法。本博客将详细解释一个简单的C语言程序&#xff0c;演示如何使用标准库函数qsort和bsearch来对一个整数数组进行排序和二分查找。 代码解析 包含头文件 #include <stdi…

引言

在计算机科学领域,查找是一项基本操作,而二分查找是一种高效的查找算法。本博客将详细解释一个简单的C语言程序,演示如何使用标准库函数qsortbsearch来对一个整数数组进行排序和二分查找。

代码解析

包含头文件

#include <stdio.h>
#include <stdlib.h>

首先,我们包含了两个标准头文件,stdio.h用于输入输出操作,stdlib.h用于内存分配和其他一些杂项功能。

比较函数

int compareIntegers(const void *a, const void *b) {return (*(int *)a - *(int *)b);
}

定义了一个比较函数compareIntegers,该函数用于在排序和二分查找时比较两个整数。这个函数的作用是返回a - b的值,即升序排序。

主函数

int main() {// 创建已排序的整数数组int numbers[] = {101, 305, 248, 407, 109};int numNumbers = sizeof(numbers) / sizeof(numbers[0]);// 排序数组qsort(numbers, numNumbers, sizeof(numbers[0]), compareIntegers);// 设置要查找的 numberint targetNumber = 305;// 使用bsearch搜索学生int *result = (int *)bsearch(&targetNumber, numbers, numNumbers, sizeof(numbers[0]), compareIntegers);// 检查结果并输出if (result != NULL) {printf("Number found: %d\n", *result);} else {printf("Number %d not found\n", targetNumber);}return 0;
}
创建并排序数组
int numbers[] = {101, 305, 248, 407, 109};
int numNumbers = sizeof(numbers) / sizeof(numbers[0]);
qsort(numbers, numNumbers, sizeof(numbers[0]), compareIntegers);

在主函数中,我们首先创建了一个整数数组numbers,然后使用sizeof操作符计算数组元素个数。接下来,我们使用qsort函数对数组进行升序排序,传递了比较函数compareIntegers来定义排序顺序。

二分查找
int targetNumber = 305;
int *result = (int *)bsearch(&targetNumber, numbers, numNumbers, sizeof(numbers[0]), compareIntegers);

设置要查找的目标数字为305,然后使用bsearch函数在已排序的数组中进行二分查找。同样,我们传递了比较函数compareIntegers来确保查找的一致性。

输出结果
if (result != NULL) {printf("Number found: %d\n", *result);
} else {printf("Number %d not found\n", targetNumber);
}

最后,我们检查bsearch的结果。如果找到了目标数字,就输出找到的数字;否则,输出未找到的消息。

时间复杂度

让我们分析一下这个程序中排序和查找部分的时间复杂度:

  1. 排序 (qsort):

    • 时间复杂度:O(n * log(n))
      • qsort通常使用快速排序算法,其平均时间复杂度为O(n * log(n)),其中n是数组的元素个数。
      • 在这个程序中,numNumbers是5,所以排序的时间复杂度为O(5 * log(5))。
  2. 查找 (bsearch):

    • 时间复杂度:O(log(n))
      • bsearch使用二分查找算法,其时间复杂度为O(log(n)),其中n是数组的元素个数。
      • 在这个程序中,数组已经排好序,numNumbers是5,所以查找的时间复杂度为O(log(5))。

因此,整个程序的时间复杂度主要由排序的部分决定,为O(5 * log(5))。在大O表示法中,忽略常数项,这可以简化为O(log(5)),即O(1)。因此,总体时间复杂度可以近似看作是O(1),即常数时间。这意味着程序的运行时间与数组的规模无关,对于小规模的数组来说是非常高效的。

总结

这个简单的C程序演示了如何使用qsort对数组进行排序,然后使用bsearch进行二分查找。这两个函数是C标准库中用于排序和查找的强大工具,通过传递比较函数,我们可以适应不同的数据类型和排序/查找需求。在实际编程中,这种方法能够提高效率,并且是一种常见的编程实践。

http://www.tj-hxxt.cn/news/10008.html

相关文章:

  • b2b外贸有哪些网站免费自助建站哪个最好
  • 网站开发的毕业设计论文框架网络推广公司深圳
  • 上海的外贸网站建设公司价格网站很卡如何优化
  • 济南知名网站建设平台百度经验官网登录
  • 比较好的前端网站磁力天堂torrentkitty
  • 罗湖商城网站建设哪家服务周到各地疫情最新消息
  • 哈市建设网站站长工具ip查询
  • wordpress 发帖机长沙关键词优化服务
  • 网站开发 质量管理企业网站seo哪里好
  • dede网站seo市场营销四大基本策略
  • 数字广东网络建设有限公司是国企吗seo排名策略
  • 腾讯空间个人认证 企业认证 网站认证哪种功能用途最齐全??上海网站建设开发公司
  • 小程序免费推广平台怀来网站seo
  • 凡科平台盲审seo网络推广教程
  • 网站做三方登陆需要注册公司不seo搜索引擎优化工资多少钱
  • 东莞网站搭建百度搜索引擎优化方案
  • 做阿里巴巴网站卖货咋样百度一下你就知道下载安装
  • 总局网站建设管理规范百度推广客户端手机版
  • 网站如何微信支付西安网络seo公司
  • 浙江立鹏建设有限公司网站谷歌优化是什么意思
  • 做网站seo的公司百度推广登陆入口官网
  • 无锡制作网站公司哪家好搜索引擎优化的各种方法
  • 范湖网站建设哪家便宜最近一周的国内新闻
  • 盐城网站优化服务网站设计公司网站制作
  • webmin 添加网站企业邮箱如何申请注册
  • wordpress 中文后台广州seo团队
  • 万网可以花钱做网站123网址之家
  • 做网站推广需要花多少钱个人免费网站建设
  • 网站建设用的服务器进入百度
  • 网站开发是先做前段还是后台互联网广告投放