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

建立网站的正确方法越秀网站建设优化

建立网站的正确方法,越秀网站建设优化,市场营销案例100例及答案,青岛网页设计制作前言#xff1a; 上一期分析了快速排序的三种写法#xff0c;这三种写法有一个相同点#xff0c;都是采用递归形式来实现的#xff0c;那么有没有非递归的方法实现呢#xff1f;答案是当然有#xff0c;用非递归的方法实现快速排序#xff0c;其实可以借助数据结构中的栈…前言 上一期分析了快速排序的三种写法这三种写法有一个相同点都是采用递归形式来实现的那么有没有非递归的方法实现呢答案是当然有用非递归的方法实现快速排序其实可以借助数据结构中的栈来模拟实现递归的过程。 思路图分析: 因为使用c语言写的所以需要我们自己写一个栈栈的实现我这里不再过多赘述我会把栈的码放在最后。假如我们现在有下面这组数组我们要对它进行排序。注意下面的数字代表下标 好接下来开始用栈模拟递归图中栈中的数字均表示下标 1.第一次入栈 将整个数组入栈也就是下标为0-8 2.第一次出栈 每次出栈对出栈的下标区间进行一次部分排序这里的部分排序就是选出key将其放在正确的位置有3种实现方法如有不懂可以看我上一期博客这里我选的是双指针法。第一次出栈进行第一趟部分排序后数组的元素变为如下图 此时的key也就是45就被放在了正确的位置也就是左边的元素都比它小右边的元素都比它大。 然后再将key的左区间和右区间分别入栈也就是0-3和5-8 3.第二次出栈 根据栈的性质后入先出所以我们让5-8出栈 跟上面一样每次出栈对相应区间进行一次部分排序排序完如下图 因为在对这个区间进行部分排序时67被选为key此时67的右边已经全部比他大所以排完序后不变然后再将key的左区间和右区间分别入栈注意此时的左区间和右区间加起来应该是5-8因为我们是对5-8这个区间进行部分排序的而不是0-8左区间没有元素了也就是4-4右区间6-8注意这时候左区间就已经没有必要入栈了因为少于2个元素必定有序了只需将没排好序的右区间入栈即可 4.第二次入栈 然后只要栈不为空我们就出栈然后进行和上面一样的操作。 现在就不难感受出这其实是在模拟递归的过程。 5.第三次出栈 部分排序后如下图 跟上面同理左区间少于两个元素不必入栈右区间入栈7-8 6.第三次入栈 然后又是7-8出栈再判断是否入栈出栈判断是否入栈出栈判断是否入栈一直重复直到栈里面为空就排好了所以循环的使用在这里面也很重要下面来看一下全部代码吧 代码 #includestdio.h #includeStack.hvoid Swap(int* a, int* b) {int tmp *a;*a *b;*b tmp; }int PartSort3(int* a, int begin, int end)//双指针法 {int keyi begin;int prev begin;int cur begin 1;while (cur end){if (a[cur] a[keyi] prev ! a[cur]){Swap(a[cur], a[prev]);}cur;}Swap(a[prev], a[keyi]);keyi prev;return keyi; }void QuickSortNonR(int* a, int begin, int end) {Stack s;StackInit(s);StackPush(s, end);StackPush(s, begin);//第一次入栈首尾下标while (!StackEmpty(s))//栈只要不为空就一直出栈判断是否入栈......{int left StackTop(s);StackPop(s);int right StackTop(s);StackPop(s);//出栈首元素下标放在left尾元素下标放在right很形象int keyi PartSort3(a, left, right);//进行一次部分排序并将最后key的下标返回//[left,keyi-1]keyi[keyi1,right]//拆分成的区间//下面为判断是否入栈if (left keyi - 1)//如果左区间元素个数不少于2{StackPush(s, keyi - 1);StackPush(s, left);//入栈}if (keyi 1 right)//如果右区间元素个数不少于2{StackPush(s, right);StackPush(s, keyi1);//入栈}}//循环结束栈为空排序完成StackDestroy(s);//销毁栈 } 栈的实现代码 #includeStack.h void StackInit(Stack* ps)//初始化栈 {ps-a NULL;ps-top -1;ps-capacity 0; } void StackPush(Stack* ps, STDateType data)//入栈 {StackCheck(ps);ps-top;ps-a[ps-top] data; } void StackCheck(Stack* ps)//检查容量 {assert(ps);if(ps-top1ps-capacity){int newcapacity ps-capacity 0 ? 4 : ps-capacity * 2;STDateType* tmp (STDateType*)realloc(ps-a, sizeof(STDateType) * newcapacity);if (tmp NULL){perror(realloc);return;}else{ps-a tmp;ps-capacity newcapacity;}} } bool StackEmpty(Stack* ps)//判空函数 {return ps-top -1; } STDateType StackTop(Stack* ps)//获取栈顶元素 {assert(ps);assert(ps-top1 0);return ps-a[ps-top]; } void StackPop(Stack* ps)//出栈 {assert(ps);ps-top--; } int StackSize(Stack* ps)//获取栈中有效元素的个数 {assert(ps);return ps-top1; } void StackDestroy(Stack* ps)//销毁栈 {assert(ps);free(ps-a);ps-a NULL;ps-top -1;ps-capacity 0; } 栈的头文件 #pragma once #includestdio.h #includeassert.h #includestdlib.h #includestdbool.h typedef int STDateType; typedef struct Stack {STDateType* a;int top;//栈顶int capacity;//容量 }Stack; void StackInit(Stack* ps);//初始化栈 void StackCheck(Stack* ps);//检查容量 void StackPush(Stack* ps, STDateType data);//入栈 void StackPop(Stack* ps);//出栈 bool StackEmpty(Stack* ps);//判空函数 STDateType StackTop(Stack* ps);//获取栈顶元素 int StackSize(Stack* ps);//获取栈中有效元素的个数 void StackDestroy(Stack* ps);//销毁栈
文章转载自:
http://www.morning.bxczt.cn.gov.cn.bxczt.cn
http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn
http://www.morning.tcxk.cn.gov.cn.tcxk.cn
http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn
http://www.morning.fykrm.cn.gov.cn.fykrm.cn
http://www.morning.seoqun.com.gov.cn.seoqun.com
http://www.morning.kjxgc.cn.gov.cn.kjxgc.cn
http://www.morning.wwwghs.com.gov.cn.wwwghs.com
http://www.morning.qgqck.cn.gov.cn.qgqck.cn
http://www.morning.wjhnx.cn.gov.cn.wjhnx.cn
http://www.morning.flqkp.cn.gov.cn.flqkp.cn
http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn
http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn
http://www.morning.ltfnl.cn.gov.cn.ltfnl.cn
http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn
http://www.morning.mkyxp.cn.gov.cn.mkyxp.cn
http://www.morning.lzrpy.cn.gov.cn.lzrpy.cn
http://www.morning.fssmx.com.gov.cn.fssmx.com
http://www.morning.myxps.cn.gov.cn.myxps.cn
http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn
http://www.morning.drrt.cn.gov.cn.drrt.cn
http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn
http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn
http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn
http://www.morning.fxjnn.cn.gov.cn.fxjnn.cn
http://www.morning.rpwht.cn.gov.cn.rpwht.cn
http://www.morning.fhrt.cn.gov.cn.fhrt.cn
http://www.morning.ljdhj.cn.gov.cn.ljdhj.cn
http://www.morning.fmkjx.cn.gov.cn.fmkjx.cn
http://www.morning.ylklr.cn.gov.cn.ylklr.cn
http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn
http://www.morning.pzrnf.cn.gov.cn.pzrnf.cn
http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn
http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn
http://www.morning.bxfy.cn.gov.cn.bxfy.cn
http://www.morning.hpprx.cn.gov.cn.hpprx.cn
http://www.morning.qtwd.cn.gov.cn.qtwd.cn
http://www.morning.qtltg.cn.gov.cn.qtltg.cn
http://www.morning.pwwjs.cn.gov.cn.pwwjs.cn
http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn
http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn
http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn
http://www.morning.fnywn.cn.gov.cn.fnywn.cn
http://www.morning.fypgl.cn.gov.cn.fypgl.cn
http://www.morning.frnjm.cn.gov.cn.frnjm.cn
http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn
http://www.morning.cbpmq.cn.gov.cn.cbpmq.cn
http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn
http://www.morning.xwgbr.cn.gov.cn.xwgbr.cn
http://www.morning.mdplm.cn.gov.cn.mdplm.cn
http://www.morning.yslfn.cn.gov.cn.yslfn.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn
http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn
http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn
http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn
http://www.morning.cjnfb.cn.gov.cn.cjnfb.cn
http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn
http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn
http://www.morning.pcwzb.cn.gov.cn.pcwzb.cn
http://www.morning.zxfdq.cn.gov.cn.zxfdq.cn
http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn
http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn
http://www.morning.yfmwg.cn.gov.cn.yfmwg.cn
http://www.morning.jjpk.cn.gov.cn.jjpk.cn
http://www.morning.sfphz.cn.gov.cn.sfphz.cn
http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn
http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn
http://www.morning.brwnd.cn.gov.cn.brwnd.cn
http://www.morning.yfqhc.cn.gov.cn.yfqhc.cn
http://www.morning.jkszt.cn.gov.cn.jkszt.cn
http://www.morning.lnyds.cn.gov.cn.lnyds.cn
http://www.morning.blqmn.cn.gov.cn.blqmn.cn
http://www.morning.yrgb.cn.gov.cn.yrgb.cn
http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn
http://www.morning.tkcct.cn.gov.cn.tkcct.cn
http://www.morning.tjcgl.cn.gov.cn.tjcgl.cn
http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn
http://www.morning.stph.cn.gov.cn.stph.cn
http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn
http://www.tj-hxxt.cn/news/258449.html

相关文章:

  • 中秋网页设计素材网站不知道怎么选
  • 个人公司网站搭建主题公园网站建设
  • 网站服务器类型查询创立网站成本
  • 知名的网站开发公司杭州网站建设app
  • wordpress做的外贸网站6做网站怎么学
  • 重庆微信营销网站建设营销公司官网
  • 上饶市建设监督网站在一个空间建两个网站
  • 胶南市城乡建设局网站成都做网站优化价格
  • 常州做网站信息商城插件wordpress
  • 哪些网站可以找到做海报的素材建网站公司深
  • 养殖业网站模板镇江市建设招标网官方网站
  • 南阳做网站 汉狮公司ins做甜品网站
  • centos做网站服务器网站哪家公司做的好
  • 国外 图片网站微购物网站建设
  • 宝坻集团网站建设wordpress 提交熊掌
  • 网站设置的用途网页游戏排行榜开服表
  • 网站 流程陕西高端品牌网站建设价格
  • 怎么创造一个网站大秦wordpress付费阅读
  • 领创科技网站开发万素网
  • 做网站开发注册工商户可以么seo友情链接是什么
  • 新东家网站建设温州网站改版
  • 响应式网站示例温州设计集团网站建设
  • 专业企业网站搭建服务毕业设计(论文)-基于cms的校园网站建设
  • 淄博网站建设选哪家免费图片编辑工具
  • 黄山景区的网站做的怎么样推荐常州模板网站建设
  • 济南网站建设咨询电话正规网站建设公司一般要多少钱
  • 静安做网站wordpress跳转到子页面
  • 长春站建筑风格数据中心idc机房建设
  • wordpress 2017 主题广州seo公司排行
  • 网站如何做京东联盟网站制作方案书