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

四川网站建设seo优化wordpress 小工具区域

四川网站建设seo优化,wordpress 小工具区域,英文网站 字体大小,遂宁市建设局网站归并排序思想#xff1a; 归并排序可以解释为是将放在数组里的一串数字进行拆分#xff0c;拆分之后再判断大小合并的过程#xff0c;每次都是从中间位置拆分#xff0c;例如有七个数#xff0c;第一次拆分就将它们分成前三个数为一个数组#xff0c;后四个数为一个数组 归并排序可以解释为是将放在数组里的一串数字进行拆分拆分之后再判断大小合并的过程每次都是从中间位置拆分例如有七个数第一次拆分就将它们分成前三个数为一个数组后四个数为一个数组我们拆分之后在堆区开辟空间来存放这两个数组将拆分的两个数组按照第一次拆分一样的方法对它俩再进行拆分直到每个数组里面都只有一个元素就结束拆分之后从最后往前依次判断合并。 #include stdio.h #include stdlib.h void sort(int *a,int n); //拆分 void merge(int *a,int *left,int leftlen,int *right,int rightlen); //合并 void show(int *a,int n); int main(int argc, char *argv[]) { int a[10] {5,46,12,34,55,9,48,79,23,10};puts(排序前);show(a,10);sort(a,10);puts(排序后);show(a,10);return 0; } void merge(int *a,int *left,int leftlen,int *right,int rightlen) //合并 {int i0; //左边数组的下标int j0; //右边数组的下标int k0; //归并数组的下标while(leftleni rightlenj){if(left[i]right[j]) //从小到大排列合并{a[k] left[i];}elsea[k] right[j];}if(leftleni) //如果右边数组拿完左边数组还有就将剩下的全部放入合并数组{a[k] left[i];}if(rightlenj) //反之{a[k] right[j];} } void sort(int *a,int n) //拆分 {if(n2) //递归终止条件当数组中元素只有一个时就结束return;int mid n/2; //求中间值int *left (int *)malloc(sizeof(int)*mid); //开存放拆分数据的空间int *right (int *)malloc(sizeof(int)*(n-mid));for(int i0;imid;i) //将a左边的数据存入left{left[i] a[i];}for(int jmid;jn;j) //将a右边的数据存入right{right[j-mid] a[j];}sort(left,mid); //将left中的数再进行拆分sort(right,n-mid); //将right中的数据再进行拆分merge(a,left,mid,right,n-mid);free(left); //释放空间free(right); } void show(int *a,int n) {for(int i0;in;i){printf(%d ,a[i]);}puts(); } 解析在上述思想中我们提到了对不同的数组做同样的操作因此这里就可以通过使用递归函数来实现我们将代码分为两个函数来写一个是拆分函数另一个是合并函数 拆分函数 拆分函数我们需要传进去的参数为数组元素首地址和数组长度既然拆分函数为递归函数那我们就需要有结束条件在这里结束条件就为数组长度n为1时就结束拆分首先是找到数组中间的元素下标从中间拆分为左右两个数组根据左右数组长度来开辟对应大小的空间开辟完空间之后将左右数组元素存入到空间中存入之后再调用拆分函数自己将左右函数的元素首地址和长度当做参数传入这样就可以再次对函数进行拆分拆分结束之后就是合并函数 合并函数 合并函数需要传入的参数有五个第一个就是原来需要拆分的数组的首地址用来存放合并后的元素后面四个参数分别是左边数组的元素首地址、左边数组的长度、右边数组的元素首地址、右边数组的长度在合并函数里面我们首先需要定义三个变量分别来代表左边数组的元素下标、右边数组的元素下标和合并数组的元素下标在合并的时候只要左右两边数组都有元素就需要进行判断大小于是循环表达式为leftleni rightlenj在比较完之后就是将数存入合并数组存入哪个数组的数就让对应数组的下标自加1这样下次就能判断下一个数直到有一边数组中的元素被全部拿出存入到合并数组就结束循环判断这时需要判断左右数组中是否有剩余的元素有的话依次存入到合并数组中 合并函数写完之后我们就可以在拆分函数中调用它在左右数组拆分完之后就调用合并函数进行合并合并完成之后还有一件事宝子们不要忘啦那就是释放空间因为存放左右数组元素的空间是我们自己开辟的堆区空间所以需要我们自己释放。释放之后排序也就结束了最后再循环遍历一下原数组就可以看到已经排好序啦。
http://www.hkea.cn/news/14594530/

相关文章:

  • 免费空间可以上传网站吗网站设计贵不贵
  • 备案 网站 漏接 电话中国摄影在线网站
  • 网站建设哪家好就推 鹏博资讯如何做 行业社交类网站
  • 卫浴响应式外贸网站建设旅游网站建设合同
  • iis部署网站提示建设中门票预订网站建设
  • 工信部信息备案网站查询未来做哪些网站能致富
  • 手机网站 收录wordpress 数据库搜索功能
  • 网络营销网站建设ppt黄骅市邮编
  • 整个网站都在下雪特效怎么做手机端h5网站模板下载
  • 网站办公室比较厉害的网站制作公司
  • 地方网站优势邯郸网站制作哪里做
  • 网站推广策划方案书手机网站模板 源码
  • 套模板建设网站多少钱徐州网络推广公司排名
  • 网站伪静态怎么做公司做网站需准备资料
  • php能区别电脑网站和手机网站吗怎么嵌入到phpcms深圳招聘网站前十排名
  • 网站建设的常见技术有哪些知名网站建设推荐
  • 用什么软件做楼盘微网站厦门微信商城网站建设
  • 智能做网站西宁做网站哪家公司好
  • 网站建设 ppt网站建设维护网页设计
  • 国内网站做得好的公司做网站一般做几个尺寸
  • 哪个平台做网站好天津建设工程信息网招标文件澄清
  • 营销型网站价格实惠wordpress商城购物表单
  • 做网站大概要花多少钱房屋租赁网站建设如何给客户定位
  • 做统计的网站吗网站开发 外包 哪家
  • 广州市公司网站建设品牌免费的网络电视app
  • 南宁网站建站公司ps如何做网页
  • 怎样制作网站后台建站程序的价钱
  • 网站开发多语言切换思路公司内部管理软件叫什么
  • 个人的网站怎么备案在上海做钟点工的网站
  • 建站软件免费试用wordpress 不能选择数据库