当前位置: 首页 > 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.mnyf.cn/news/34177.html

相关文章:

  • 定制网站开发流程怎么样优化网站seo
  • 网站开发建设合同百度24小时人工电话
  • 泉州模板自助建站百度点击器找名风
  • 比较容易做的网站百度站长提交网址
  • 怎样找人做网站岳阳seo公司
  • 举报网站怎么做百度网站禁止访问怎么解除
  • 云南 房地产网站建设长沙岳麓区
  • Php做网站要求优质的seo快速排名优化
  • 戚墅堰做网站杭州网站推广平台
  • 网站建设与管理专业自我评价上海公布最新情况
  • 免费网站源码大全最新一周新闻
  • 网站设计要求 优帮云西安疫情最新数据
  • 凤岗网站建设网络推广专员是干什么的
  • 亿源科技网站建设太原百度seo排名软件
  • 网站qq客服显示不在线四川旅游seo整站优化
  • 深圳西乡有什么好玩的seo超级外链工具
  • 南昌做网站的公司哪家好百度网盘app免费下载安装老版本
  • 视频网站顶部效果怎么做的百度pc端网页版
  • 广告公司网站(附falsh及源代码)网站策划报告
  • 辽宁大学网站怎么做aso优化榜单
  • 工商注册网站模板seo产品推广
  • 如何自己做门户网站百度大搜推广和百度竞价
  • wordpress 迅影网深圳博惠seo
  • 上海网站制作公司哪网络营销策划模板
  • 手机网站有什么区别武汉做seo
  • 做货代在哪个网站找客源会计培训班多少钱
  • 网站做收付款接口google关键词工具
  • 传奇手游网站系统优化软件排行榜
  • iis做的网站其他电脑能看吗网络营销是网上销售吗
  • 创建网站的目的是什么原因网络推广的概念