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

紫搜科技建站seo外链专员

紫搜科技建站,seo外链专员,清远网站seo公司,网络公司排名兴田德润链接奉上:合并两个有序数组 目录 直接合并后排序:思路:代码实现: 双指针思路:代码实现: 直接合并后排序: 思路: 将nums2直接合并到nums1后边,并进行排序 代码实现&…

链接奉上:合并两个有序数组
在这里插入图片描述

目录

  • 直接合并后排序:
    • 思路:
    • 代码实现:
  • 双指针
    • 思路:
    • 代码实现:

直接合并后排序:

思路:

将nums2直接合并到nums1后边,并进行排序

代码实现:

#include<stdlib.h>int cmp(void* e1,void* e2)
{return *((int*)e1)-*((int*)e2);
}void merge(int* nums1,int numsSize1, int m,int* nums2, int numsSize2,int n)
{int j = 0;for(int i = m; i < numsSize1;i++){nums1[i] = nums2[j++];}qsort(nums1,numsSize1,4,cmp);
}

双指针

思路:

我们发现nums1nums2已经是排序了的。
为了利用这一性质,我们可以使用双指针方法。
这一方法将两个数组看作队列,每次从两个数组头部取出比较小的数字放到结果中。

代码实现:

初版:

void merge(int* nums1,int numsSize1, int m,int* nums2, int numsSize2,int n)
{int arr[numsSize1];int count1 = 0;int count2 = 0;int i = 0;if(n < 1)//若n<1,进行判断时会发生越界现象;else{while(1){   //当count1+count2相加等于numssize1说明数组arr已经装满了//就可以跳出循环if(count1 + count2 == numsSize1){break;}//这两个goto语句是为了防止nums1超出m时后会判断失误//或者nums2超出n时越界if(count1 == m)goto flag2;if(count2 == n)goto flag1;if(nums1[count1] <= nums2[count2]){flag1:arr[i++] = nums1[count1++];}else{flag2:arr[i++] = nums2[count2++];}}for(int i = 0; i < numsSize1; i++){nums1[i] = arr[i];}}
}

进阶版:
我们发现初版的代码包含了goto语句,逻辑判断也比较令人摸不到头脑
于是

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {int p1 = 0, p2 = 0;int sorted[m + n];int cur;while (p1 < m || p2 < n) {if (p1 == m) {cur = nums2[p2++];}else if (p2 == n) {cur = nums1[p1++];}else if (nums1[p1] < nums2[p2]) {cur = nums1[p1++];}else {cur = nums2[p2++];}sorted[p1 + p2 - 1] = cur;}for (int i = 0; i != m + n; ++i) {nums1[i] = sorted[i];}
}

这段代码业务逻辑就更加清晰,我们也要学习这样的代码风格,

欢迎讨论。

http://www.hkea.cn/news/325092/

相关文章:

  • 网站设计基本功能域名免费注册0元注册
  • 徐州网站建设的特点营销咨询公司
  • 网站建设问题表在seo优化中
  • 网站建设公司 倒闭店铺推广方法
  • 网站搭建素材短视频培训
  • amazon虚拟机免费做网站百度信息流怎么收费
  • 深圳做网站推广公司聊城seo整站优化报价
  • 深圳专业app网站开发企业网站建设原则是
  • 网站开发师职责柳州网站建设哪里有
  • 自己做的网站怎么改电话网络推广代运营公司
  • 做水果的网站有哪些google高级搜索
  • 怎么用网站做文案百度推广可以自己开户吗
  • 做的好的新闻网站排名优化
  • 购物网站开发功能百度联盟个人怎么接广告
  • 网站如何盈利流量费网站seo搜索引擎的原理是什么
  • 泰安房产价格最新域名年龄对seo的影响
  • 网站打不开怎么回事引流推广平台有哪些
  • 课程网站建设特色成都seo外包
  • 建设厅安全员证书查询网站外链seo推广
  • 邢台手机网站建设服务百度查重软件
  • 网站开发开题报告ppt竞价运营是做什么的
  • 网站代理怎么做的网站推广策划思路
  • 长沙网站seo公司百度权重5的网站能卖多少钱
  • 常德网站开发百度推广登录首页网址
  • 网站建设软件设计推广官网
  • 网站运营阶段站长之家app
  • discuz网站标题百度广告推广价格
  • 广州学校论坛网站建设疫情排行榜最新消息
  • 古董手表网站网络营销的主要方式和技巧
  • 做公司网站要那些资料百度电脑版下载官方