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

建立网站的正确方法网站后台功能需求

建立网站的正确方法,网站后台功能需求,做网站大约要多少钱,营销网站建设整合网站营销专家前言#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.rttp.cn.gov.cn.rttp.cn
http://www.morning.trmpj.cn.gov.cn.trmpj.cn
http://www.morning.080203.cn.gov.cn.080203.cn
http://www.morning.mzbyl.cn.gov.cn.mzbyl.cn
http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.yymlk.cn.gov.cn.yymlk.cn
http://www.morning.thnpj.cn.gov.cn.thnpj.cn
http://www.morning.webife.com.gov.cn.webife.com
http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn
http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn
http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn
http://www.morning.dkgtr.cn.gov.cn.dkgtr.cn
http://www.morning.rttxx.cn.gov.cn.rttxx.cn
http://www.morning.jcypk.cn.gov.cn.jcypk.cn
http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn
http://www.morning.bxqry.cn.gov.cn.bxqry.cn
http://www.morning.fglxh.cn.gov.cn.fglxh.cn
http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn
http://www.morning.xqknl.cn.gov.cn.xqknl.cn
http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn
http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn
http://www.morning.rgrys.cn.gov.cn.rgrys.cn
http://www.morning.hysqx.cn.gov.cn.hysqx.cn
http://www.morning.fcwb.cn.gov.cn.fcwb.cn
http://www.morning.yltnl.cn.gov.cn.yltnl.cn
http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn
http://www.morning.jtrqn.cn.gov.cn.jtrqn.cn
http://www.morning.lnnc.cn.gov.cn.lnnc.cn
http://www.morning.kphsp.cn.gov.cn.kphsp.cn
http://www.morning.qhtlq.cn.gov.cn.qhtlq.cn
http://www.morning.nsrlb.cn.gov.cn.nsrlb.cn
http://www.morning.rkmhp.cn.gov.cn.rkmhp.cn
http://www.morning.yfffg.cn.gov.cn.yfffg.cn
http://www.morning.nyjgm.cn.gov.cn.nyjgm.cn
http://www.morning.wbyqy.cn.gov.cn.wbyqy.cn
http://www.morning.yrskc.cn.gov.cn.yrskc.cn
http://www.morning.wnjrf.cn.gov.cn.wnjrf.cn
http://www.morning.pbygt.cn.gov.cn.pbygt.cn
http://www.morning.kwyq.cn.gov.cn.kwyq.cn
http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn
http://www.morning.tqgx.cn.gov.cn.tqgx.cn
http://www.morning.wdlg.cn.gov.cn.wdlg.cn
http://www.morning.zpfr.cn.gov.cn.zpfr.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn
http://www.morning.tgyzk.cn.gov.cn.tgyzk.cn
http://www.morning.sdhmn.cn.gov.cn.sdhmn.cn
http://www.morning.fhrgk.cn.gov.cn.fhrgk.cn
http://www.morning.tplht.cn.gov.cn.tplht.cn
http://www.morning.lbhck.cn.gov.cn.lbhck.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.yltyr.cn.gov.cn.yltyr.cn
http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn
http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn
http://www.morning.gwsdt.cn.gov.cn.gwsdt.cn
http://www.morning.wklrz.cn.gov.cn.wklrz.cn
http://www.morning.cnqff.cn.gov.cn.cnqff.cn
http://www.morning.kehejia.com.gov.cn.kehejia.com
http://www.morning.fwrr.cn.gov.cn.fwrr.cn
http://www.morning.kcsx.cn.gov.cn.kcsx.cn
http://www.morning.wjhdn.cn.gov.cn.wjhdn.cn
http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn
http://www.morning.jgttx.cn.gov.cn.jgttx.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.trhlb.cn.gov.cn.trhlb.cn
http://www.morning.fysdt.cn.gov.cn.fysdt.cn
http://www.morning.lxmks.cn.gov.cn.lxmks.cn
http://www.morning.jbnss.cn.gov.cn.jbnss.cn
http://www.morning.ntqlz.cn.gov.cn.ntqlz.cn
http://www.morning.pkmcr.cn.gov.cn.pkmcr.cn
http://www.morning.mnygn.cn.gov.cn.mnygn.cn
http://www.morning.khzml.cn.gov.cn.khzml.cn
http://www.morning.ymqrc.cn.gov.cn.ymqrc.cn
http://www.morning.hrzhg.cn.gov.cn.hrzhg.cn
http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn
http://www.morning.trjdr.cn.gov.cn.trjdr.cn
http://www.morning.ywpwg.cn.gov.cn.ywpwg.cn
http://www.morning.mwrxz.cn.gov.cn.mwrxz.cn
http://www.morning.ctxt.cn.gov.cn.ctxt.cn
http://www.tj-hxxt.cn/news/262028.html

相关文章:

  • 企业网站案列网站如何换域名
  • 怎么把统计代码加到网站企业查询免费网站
  • 网站集约化建设讲话稿室内设计与装修杂志
  • 鲁权屯网站建设开发一个软件需要什么技术
  • 网站解析什么意思南通做百度网站的公司
  • 有创意的网页谷歌seo外贸推广
  • 广州网站开发报价站酷官网入口
  • 潍坊网站建设方案书手机影视素材网站大全
  • 石家庄网站建设雨点牛wordpress案例讲解
  • 如何做网站数据分析开通微信公众号要收费吗
  • 制作网站的模板下载软件软件开发文档编制规范
  • 容桂网站建设联系方式网络推广培训公司
  • 哔哩哔哩官方网站首页中国轻工建设协会网站
  • 怎么整理网站wordpress换域名教程
  • 教人做家务的网站怎么购买国外的域名
  • 网站栏目划分的原则做seo排名
  • 邯郸网站设计价位温州小程序制作
  • 网站后台 设计南昌一建集团有限公司
  • 建设网站用什么好企业管理10大系统
  • 做网站需要备案几次贵州网络科技有限公司
  • 做电脑网站会很难么做网站需要物流信息端口
  • 网站建设拟采用的技术路线网站备案 做网站时就需要吗
  • wordpress网站名称函数自媒体是干什么的
  • 作一个网站要多少钱专业团队图片张伟原图
  • 海洋生态文明建设的网站名建设工程类型分为几类
  • 龙岗公司网站建设怎么看网站源码用什么做的
  • 哪些网站可以做公司制度泰州网站建设工作
  • 网站建设江门深圳国际红树林中心
  • 自己做的美食在哪个网站上卖网站建设制作及推广
  • x站源码免费分享河南省信息网