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

什么公司做网站出名自制网站教程

什么公司做网站出名,自制网站教程,0建设营销型网站步骤介绍,深圳外贸平台建站题目 这是一道经典的关于分治思想的算法题,适合刚接触分治的小白。 . - 力扣(LeetCode) 思路 采用递归分治的思想,也就是快速排序的模拟,这里先确定每趟递归的作用: 在一个规定的区间内,随机…

题目

这是一道经典的关于分治思想的算法题,适合刚接触分治的小白。

. - 力扣(LeetCode)

思路 

 采用递归分治的思想,也就是快速排序的模拟,这里先确定每趟递归的作用:

在一个规定的区间内,随机选择一个key,将key放在正确的位置,也就是左边的元素都比它小,右边的元素都比它大,实现方法如下:

通过三个指针(i,left,right)将数组划分为4个区域。

我们确保处理过程中:

left左边全是<key的元素

left+1到i-1全是==key的元素

i到right-1都是待扫描的元素

right右边都是>key的元素 

当i和right相遇时循环结束

最后数组就被划分为3个区域:

left左边全是<key的元素,left+1到right-1全是==key的元素,right右边都是>key的元素。

最后再递归处理左边<key的区间和右边>key的区间,进行上述相同的操作。

AC代码:

class Solution {
public:vector<int> sortArray(vector<int>& nums) {srand(time(NULL));qsort(nums,0,nums.size() - 1);return nums;}void qsort(vector<int>& nums,int l,int r){//递归结束条件if(l>=r) return;//随机选取keyint key = GetRandM(nums,l,r);int i = l,left = l - 1,right = r + 1;//确保过程中被划分为预先设好的4个有规律的区域while(i<right){if(nums[i] < key) swap(nums[++left],nums[i++]);else if(nums[i] == key) i++;else swap(nums[--right],nums[i]);}//[l,left][left+1,right-1][right,r]//递归左右区间qsort(nums,l,left);qsort(nums,right,r);}//得到区间内一个随机元素int GetRandM(vector<int>& nums,int left,int right){int r = rand();return nums[r % (right - left + 1) + left];}
};

http://www.yidumall.com/news/85339.html

相关文章:

  • 网站图片怎么做才有吸引力网站申请流程
  • 一个人怎么做网站最近热点新闻事件2023
  • 哈尔滨网站建设培训国外网站推广平台有哪些?
  • 成都网站建设优化百度竞价推广计划
  • 做网站需准备些什么软件某一网站seo策划方案
  • 杭州做网站的重庆seo排
  • php做网站不兼容ie8河南纯手工seo
  • 外贸网站做SEO株洲发布最新通告
  • 山东建设厅官方网站一级建造师网络营销策划书格式
  • 网站上360 旋转的图是怎么做的武汉seo引擎优化
  • 一般网站用什么软件做nba哈登最新消息
  • 门户网站开发 报价如何在百度发布信息推广
  • 兰州北京网站建设sq网站推广
  • 武汉网站建设管理登录网页设计与制作考试试题及答案
  • 河北城乡和住房建设厅官方网站霸屏seo服务
  • 南昌网站维护制作seo快速排名软件案例
  • 贵州省住房和城乡建设厅官方网站首页西安百度首页优化
  • web前端工程师工资班级优化大师app
  • 公司用于做网站的费用怎么做账长沙专业网络推广公司
  • 如何挑选网站主机写软文的平台有哪些
  • 网站快照没了百度推广怎么推
  • 怎么做网站上做电子书华联股份股票
  • 邯郸网站建设公司网站查询网
  • ftp怎么重新上传网站营销qq官网
  • 网站外部链接合理建设谷歌搜索引擎363入口
  • 网站优化排名金苹果下拉营销网站模板
  • 宝坻做网站铜川网站seo
  • 北京 网站制作安卓手机优化神器
  • 做嗳嗳的网站网页模板
  • 网站排名是怎么做网站主页