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

建设网站免费织梦做的网站在百度搜索页劫取

建设网站免费,织梦做的网站在百度搜索页劫取,wordpress获取api密钥,网站开发4k分辨率"你经过我每个灿烂时刻,我才真正学会如你般自由" 前些天有些无聊,想试试自己写的快排能否过leetcode上的排序算法题。结果是,不用截图可想而知,肯定是没过的,否则也不会有这篇文章的产出。 这份快排算法代码…

"你经过我每个灿烂时刻,我才真正学会如你般自由" 


         前些天有些无聊,想试试自己写的快排能否过leetcode上的排序算法题。结果是,不用截图可想而知,肯定是没过的,否则也不会有这篇文章的产出。

        这份快排算法代码在面对大量重复数的时候,时间复杂度会下降到O(n^2),这也是为什么leetcode显示最后会超时。所以如何解决呢?也许在此之前,可以先回顾回顾快排三步核心算法步骤。

——前言


快排的三个核心算法

● HOARE版

        这是最早的版本,也叫做左右指针法。不过这个算法需要值得注意的是一个地方。排升序时,一定是需要右指针先动,相反如果是排降序,则是左指针先动。        

int PartSort1(vector<int>& nums, int l, int r)
{// 左右指针法int key = nums[l];int left = l;int right = r;while (left < right){// 这里需要注意取等 // 如果不取等可能陷入死循环while (left < right && nums[right] >= key){right--;}while (left < right && nums[left] <= key){left++;}if (left < right) {swap(nums[left], nums[right]);}}// 处理keyiswap(nums[left], nums[l]);return left;
}

        我们对上述例子进行排序后的代码为:

● 挖坑法

        

int PartSort2(vector<int>& nums, int l, int r)
{int key = nums[l];int hole = l;int left = l, right = r;while (left < right){// 右边找小 填左坑while (left < right && nums[right] >= key){right--;}// 填坑swap(nums[right], nums[hole]);hole = right; // 新坑while (left < right && nums[left] <= key){left++;}swap(nums[left], nums[hole]);hole = left; // 新坑}// hole即为最终落脚点return hole;
}

        

● 前后指针法

        最后的前后指针法,也在前言中用到,这里不做多的解释。

int PartSort3(vector<int>& nums, int l, int r)
{int key = nums[l];int prev = l, cur = l + 1;while (cur <= r){// 找小if (nums[cur] < key && ++prev != cur){// prev指向的一定是比key大的数swap(nums[prev], nums[cur]);}cur++;}swap(nums[prev], nums[l]);return prev;
}

        


快速选择排序

        可是,你使用上述的不管哪种算法,都无法跑过leetcode上面的题,都会在重复数的情况下超时!这里我们可以用到归并分治的思想,如果将一个无序数组排序成有序数组,选定其中一个数作为key,可以将这个数组分为三部分:

    int getRandom(vector<int>& nums, int l, int r){int keyi = rand();return nums[keyi % (r-l+1) + l];} void qsort(vector<int>& nums, int l, int r){if(l < r){int key = getRandom(nums,l,r);// 数组分三块// 先让left、right指向非法区域int i = l,left = l-1,right = r+1;// [i,right]是未处理区域while(i < right){if(nums[i] < key) swap(nums[++left],nums[i++]);else if(nums[i] == key) i++;else swap(nums[--right],nums[i]);}// 递归处理其他区间qsort(nums,l,left);qsort(nums,right,r);}}

        我们终于是可以通过啦~


本篇到此结束,感谢你的阅读。

祝你好运,向阳而生~


文章转载自:

http://kjg0Fzvc.pgggs.cn
http://gM61sJCx.pgggs.cn
http://90EyXR27.pgggs.cn
http://RGh1I71b.pgggs.cn
http://Wv8OpvPP.pgggs.cn
http://OtDNphRB.pgggs.cn
http://cvyFCVsf.pgggs.cn
http://v0B7X5Vy.pgggs.cn
http://sDolD173.pgggs.cn
http://im3kjSxh.pgggs.cn
http://ezboGcl4.pgggs.cn
http://nBd2rNIa.pgggs.cn
http://fF2LroHG.pgggs.cn
http://LQcEMJjQ.pgggs.cn
http://UlUeFnn9.pgggs.cn
http://Jt18XtIW.pgggs.cn
http://TnHuncWi.pgggs.cn
http://6Fzgrqok.pgggs.cn
http://gaY2jTpq.pgggs.cn
http://2ctKSTun.pgggs.cn
http://taT1b0bn.pgggs.cn
http://2TlqOjbM.pgggs.cn
http://2qKI8NNB.pgggs.cn
http://fGwKQtaK.pgggs.cn
http://6ofok3Mp.pgggs.cn
http://dph5OCNJ.pgggs.cn
http://fVNgznol.pgggs.cn
http://G0MR2oK3.pgggs.cn
http://fDndDef0.pgggs.cn
http://pcvMVxt0.pgggs.cn
http://www.dtcms.com/wzjs/694256.html

相关文章:

  • 京东联盟如何做查优惠卷的网站wordpress框架文件
  • 烟台网站建设力推企汇互联见效付款软件开发分为哪几个步骤
  • 室内设计资料网站网站设计中的技术分析
  • 怎么样让公司网站企业网站建设方案书模板
  • 在哪个网站可以查做项目中标的小程序api抓取
  • 自己做网站 需要哪些东西新郑市网站建设小程
  • 湖南怀化市住房城乡建设局网站百度宣传广告要多少钱
  • 新乡网站开发清河企业做网站
  • 中职网站建设课件建外贸营销型网站
  • 手机选择网站厦门电子商务网站建
  • 顺德公司网站制作销售网站内容设计方案
  • 网站设计师工作室黄石建网站
  • 潍坊企业网站模板建站大网站怎样选域名
  • 专业优定软件网站建设外卖网站那家做的好
  • 做类似返利网的网站有哪些九江市seo
  • lamp做网站的论文注册一个公司多少钱
  • 成都用设计公司网站微信公众号编辑教程
  • 企业网站价格做网站比较好的公司有哪些
  • 剑三做月饼活动网站门户网站都有哪些
  • 哪家做网站好 成都在邯郸开互联网公司
  • 科技管理信息网站的建设方案wordpress插件中文
  • 自己做网站可以挣钱吗中国建设银行官网首页网站
  • 常州品牌网站建设网站设计与建设代码
  • 移动端和pc网站历史文化类网站源码
  • 给 小企业 建设网站万维网网站续费
  • 个人可以做自媒体网站吗网站建设制作一个网站的费用
  • 普通企业网站费用杭州seo托管公司推荐
  • 专业做外贸网站的公司东莞网络科技有限公司
  • 公司网站程序顺的品牌网站设计价位
  • 嘉兴h5建站网站建设步骤和流程