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

龙岩市网站建设济南建行网点

龙岩市网站建设,济南建行网点,wordpress 企业主模板,广州越秀区最新通知题目:有一个已经排好序的数组。现输入一个数#xff0c;要求按原来的规律将它插入数组中。 程序分析 要将一个数插入已经排好序的数组中#xff0c;我们可以采用以下步骤#xff1a; 遍历数组#xff0c;找到第一个大于待插入数的位置。将待插入数插入到该位置#xff…题目:有一个已经排好序的数组。现输入一个数要求按原来的规律将它插入数组中。 程序分析 要将一个数插入已经排好序的数组中我们可以采用以下步骤 遍历数组找到第一个大于待插入数的位置。将待插入数插入到该位置同时将该位置后面的元素依次后移一位。 下面我们将使用三种不同的方法来实现这个任务并分析它们的优缺点。 方法一插入排序 解题思路 插入排序是一种简单的排序算法适用于已经部分有序的数组。我们可以利用插入排序的思想来解决这个问题。 实现代码 #include stdio.hvoid insertSorted(int arr[], int size, int num) {int i, j;for (i 0; i size; i) {if (arr[i] num) {for (j size - 1; j i; j--) {arr[j 1] arr[j];}arr[i] num;break;}} }int main() {int arr[] {1, 3, 5, 7, 9};int size sizeof(arr) / sizeof(arr[0]);int num 4;printf(Original Array: );for (int i 0; i size; i) {printf(%d , arr[i]);}insertSorted(arr, size, num);size;printf(\nArray after insertion: );for (int i 0; i size; i) {printf(%d , arr[i]);}return 0; }优缺点 优点 简单易懂容易实现。对于小规模数组或已经基本有序的数组性能较好。 缺点 对于大规模数组性能较差时间复杂度为O(n^2)。 方法二二分查找 插入 解题思路 我们可以使用二分查找来快速找到待插入数的位置然后再进行插入操作。 实现代码 #include stdio.hint binarySearch(int arr[], int left, int right, int num) {while (left right) {int mid left (right - left) / 2;if (arr[mid] num) {return mid;} else if (arr[mid] num) {left mid 1;} else {right mid - 1;}}return left; }void insertSorted(int arr[], int size, int num) {int pos binarySearch(arr, 0, size - 1, num);for (int i size - 1; i pos; i--) {arr[i 1] arr[i];}arr[pos] num; }int main() {int arr[] {1, 3, 5, 7, 9};int size sizeof(arr) / sizeof(arr[0]);int num 4;printf(Original Array: );for (int i 0; i size; i) {printf(%d , arr[i]);}insertSorted(arr, size, num);size;printf(\nArray after insertion: );for (int i 0; i size; i) {printf(%d , arr[i]);}return 0; }优缺点 优点 较方法一更高效时间复杂度为O(log n)。适用于大规模数组。 缺点 实现稍微复杂一些。 方法三使用标准库函数 解题思路 我们可以使用C标准库函数bsearch来进行二分查找然后使用memmove函数来移动元素实现插入操作。 实现代码 #include stdio.h #include stdlib.h #include string.hint compare(const void *a, const void *b) {return (*(int *)a - *(int *)b); }void insertSorted(int arr[], int *size, int num) {int *pos (int *)bsearch(num, arr, *size, sizeof(int), compare);if (pos NULL) {pos arr (*size);}memmove(pos 1, pos, (*size - (pos - arr)) * sizeof(int));*pos num;(*size); }int main() {int arr[] {1, 3, 5, 7, 9};int size sizeof(arr) / sizeof(arr[0]);int num 4;printf(Original Array: );for (int i 0; i size; i) {printf(%d , arr[i]);}insertSorted(arr, size, num);printf(\nArray after insertion: );for (int i 0; i size; i) {printf(%d , arr[i]);}return 0; }优缺点 优点 使用标准库函数简化了实现。高效时间复杂度为O(log n)。适用于大规模数组。 缺点 对C标准库的依赖可能不适用于嵌入式系统等环境。 总结 对于小规模数组或者已经基本有序的数组方法一插入排序是一个简单且直观的选择。但是对于大规模数组它的性能较差。 方法二二分查找插入在大规模数组中性能更好时间复杂度为O(log n)适用于大型数据集。 方法三使用标准库函数也具有高效的性能同时简化了实现但需要依赖C标准库。 综合考虑方法二和方法三都是不错的选择具体取决于项目需求和对性能的要求。如果对性能要求较高且可以使用标准库函数那么方法三是一个不错的
http://www.zqtcl.cn/news/8254/

相关文章:

  • 网站开发雷小天大搜推广
  • 菜鸟教程网站是怎么做的wordpress更新主机名
  • 高站网站建设版面设计教案
  • 曲阜网站建设哪家便宜wordpress主题 微软
  • 包头市建设局网站做网站会什么软件
  • 宿迁手机网站开发公司电话2022年自媒体平台倒闭
  • 金融网站建设成功案例邢台网站制作地址
  • 网站开发的基本流程竖导航网站
  • 做网站建设的联系电话怎么在各大网站做推广
  • 慧聪网官方网站网站两边横幅怎么做
  • 优化一个网站多少钱招远市建设局网站
  • 软件开发文档模板下载深圳专业seo
  • 网站建设动画教程电脑网站生成手机网站
  • 佛山公司建网站阿里企业邮箱收费标准
  • 做外贸的网站有何用处wordpress如何知道用户数量
  • 献县建设局网站福州建设招聘信息网站
  • 导游网站后台贵州大地建设集团网站
  • 企业网站管理系统排名品牌网站建设费用要多少
  • 奉贤做网站价格国外看新闻app推荐
  • 安卓手机app开发教程学生班级优化大师
  • 建设公司查询网站首页中小企业网站建设 论文
  • 网站开发前准备网渠道
  • 什么是企业网站建设丹棱县 网站建设
  • 注册好网站以后怎么做福建建设注册管理中心网站
  • 小游戏网站怎么做wordpress编辑导航栏
  • 企业网站怎么做两种语言做网站前段用什么软件
  • 小说网站建站程序网络组建拓扑图
  • 网站管理系统 php免费的企业邮箱怎么申请
  • 怎样做淘宝网站旅行网站排名
  • 如何做能上传视频网站哪些网站用天平做logo