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

扶沟县网站开发淘宝美工培训推荐

扶沟县网站开发,淘宝美工培训推荐,公司网站用wordpress,网站建设服务包括什么回顾递归的快速排序,都是先找到key中间值,然后递归左区间,右区间。 那么是否可以实现非递归的快排呢?答案是对的,这里需要借助数据结构的栈。将右区间左区间压栈(后进先出),然后取出…

        回顾递归的快速排序,都是先找到key中间值,然后递归左区间,右区间。

        那么是否可以实现非递归的快排呢?答案是对的,这里需要借助数据结构的。将右区间左区间压栈(后进先出),然后取出左区间,再将左区间的子右区间和子左区间压栈,再取出左区间的子左区间......,当栈为空时,即全部取出,此时已经有序。f2411c060f1945129eabf66cf4da911c.png

5b3c8442dda544c1a16c2f3b9d702693.png 

 

        和递归一样,首先用三数取中来优化:

//三数取中
int GetMidi(int* arr, int begin, int end)
{int midi = (begin + end) / 2;if ((arr[begin] > arr[midi] && arr[begin] < arr[end])|| (arr[begin]) > arr[end] && arr[begin] < arr[midi])midi = begin;if ((arr[end] > arr[midi] && arr[end] < arr[begin])|| (arr[end]) > arr[begin] && arr[end] < arr[midi])midi = end;return midi;
}

        接着借用递归快排的指针法,来进行单趟排序,得到中间基准值,并划分做右区间(不记得指针法的回看博客)

int QuickSort_pointer_incline(int* arr, int begin, int end)
{int midi = GetMidi(arr, begin, end);Swap(&arr[begin], &arr[midi]);int keyi = begin;int prev = begin, cur = prev + 1;while (cur <= end){if (arr[cur] < arr[keyi] && ++prev != cur)Swap(&arr[prev], &arr[cur]);++cur;}Swap(&arr[prev], &arr[keyi]);keyi = prev;return keyi;
}

        最后使用栈来压栈出栈

void QuickSort_NonR_incline(int* arr, int begin, int end)
{ST s;STInit(&s);//放入端点//因为后进先出,所以先入右,后入左,区间[左,右]STPush(&s, end);STPush(&s, begin);while (!STEmpyty(&s)){//出栈int left = STTop(&s);STPop(&s);int right = STTop(&s);STPop(&s);//指针单趟排序int keyi = QuickSort_pointer_incline(arr, left, right);//[left,keyi-1],keyi,[keyi+1,right]//入右区间,同样先入右区间的右端点,再左端点if (keyi + 1 < right){STPush(&s, right);STPush(&s, keyi + 1);}//入左区间,同样先入左区间的右端点,再左端点if (left < keyi - 1){STPush(&s, keyi - 1);STPush(&s, left);}//循环回去,又取出区间,再次单趟排序后,又入子右区间,子左区间}STDestroy(&s);
}

 

 

http://www.hrbkazy.com/news/29739.html

相关文章:

  • 自己做的网站和淘宝店的区别网络销售挣钱吗
  • phpcms做视频网站网上国网app推广
  • 备案网站内容怎么写乔拓云智能建站系统
  • 公司网页网站建设百度地址如何设置门店地址
  • 网站制作小图标北京seo助理
  • 住房和建设建设局网站企业站seo
  • 免费企业名录网站最近三天的国际新闻大事
  • 万网上买了域名怎么建设网站3d建模培训班一般多少钱
  • wordpress二次开发如何对一个网站进行seo
  • 腾讯在线客服系统深圳网站搜索优化
  • 域名申请成功后怎么做网站泉州seo外包
  • 广州市品牌网站建设服务机构小红书seo排名
  • 做服装行业网站怎么每天更新内容太原seo外包公司
  • 外贸公司是私企还是国企seo难不难
  • 公司网站宣传常州网络推广平台
  • 怎样用手机做推广免费网站做百度推广员赚钱吗
  • 两个域名指向同一个网站怎么做免费推广平台
  • 做网页建网站挣钱免费智能seo收录工具
  • 想做水果外卖怎么做网站play商店
  • 找建站公司做网站注意事项c++培训班学费一般多少
  • 做app网站最近一周的重大新闻
  • 外贸怎么做网站会计培训班初级费用
  • 福州培训网站建设珠海网站建设优化
  • 外贸网站建设怎么选海南seo顾问服务
  • 建个微商城网站多少钱如何去推广自己的产品
  • 网站如何做问卷调查问卷池州网站seo
  • 领导不愿意做招聘网站怎么办灰色产业推广引流渠道
  • wordpress 站点更改免费创建网站平台
  • 主要是WordPress专业网站优化外包
  • 做宣传的网站站长工具流量统计