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

农业信息门户网站建设方案营销类网站 英文

农业信息门户网站建设方案,营销类网站 英文,成都网页制作设计,图片无法显示wordpress快速选择与快速排序的区别&#xff1a; 快速排序&#xff1a;递归地对数组的左右两部分进行排序。快速选择&#xff1a;只递归处理包含第 k 个元素的那一部分&#xff0c;目标是找到第 k 大的元素&#xff0c;而不是对整个数组排序。 快排 void quickSortHelper(vector<i…

快速选择与快速排序的区别:

  • 快速排序:递归地对数组的左右两部分进行排序。
  • 快速选择:只递归处理包含第 k 个元素的那一部分,目标是找到第 k 大的元素,而不是对整个数组排序。

快排

void quickSortHelper(vector<int>& nums, int left, int right) {if (left >= right) return;  // 如果子数组的长度小于或等于 1,已经排序// 划分操作int pivotIndex = partition(nums, left, right);// 递归对左右两部分进行排序quickSortHelper(nums, left, pivotIndex - 1);quickSortHelper(nums, pivotIndex + 1, right);}int partition(vector<int>& nums, int left, int right) {// 选择 pivot(本例选择最右边的元素作为 pivot)int pivot = nums[right];int i = left - 1;// 遍历数组,调整小于和大于 pivot 的元素的位置for (int j = left; j < right; ++j) {if (nums[j] <= pivot) {// 将小于或等于 pivot 的元素放到数组的左边swap(nums[++i], nums[j]);}}// 将 pivot 放到它最终应该在的位置swap(nums[i + 1], nums[right]);return i + 1;  // 返回 pivot 的最终位置}

1.数组中第k大的数-快速选择

https://leetcode.cn/problems/kth-largest-element-in-an-array/description/?envType=study-plan-v2&envId=top-100-liked腾讯面经高频真题,这题看上去不难,但是难点是复杂度规定为O(n)

如果用sort的话 就是O(nlogn)能做出来不太合规就是

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {sort(nums.begin(),nums.end());return nums[int(nums.size())-k];}
};

想要得到O(n),就要用快速选择算法,但是只能收敛于O(n)。 

思想

  • 选取基准元素:像快速排序一样,从数组中选择一个基准元素。
  • 分区:将数组分成两部分,一部分小于基准,一部分大于基准。
  • 判断基准位置
    • 如果基准的位置刚好是 k,则返回该元素。
    • 如果 k 小于基准位置,递归地在左半部分查找。
    • 如果 k 大于基准位置,递归地在右半部分查找。
class Solution {
public:int findKthLargest(vector<int>& nums, int k) {srand(time(NULL));  // 初始化随机数生成器return quickSelect(nums, 0, nums.size() - 1, k - 1);  // 调用快速选择函数}private:int quickSelect(vector<int>& nums, int left, int right, int k) {// 选择中点作为 pivotint pivot = nums[left + (right - left) / 2];int i = left, j = right;// 双指针划分while (i <= j) {while (nums[i] > pivot) i++;  // 找到左边小于 pivot 的元素while (nums[j] < pivot) j--;  // 找到右边大于 pivot 的元素if (i <= j) {swap(nums[i], nums[j]);  // 交换i++;j--;}}// 根据 k 的位置决定继续在左半边还是右半边递归if (left <= k && k <= j) return quickSelect(nums, left, j, k);  // 左边部分if (i <= k && k <= right) return quickSelect(nums, i, right, k);  // 右边部分return nums[k];  // 找到 k 位置的元素}
};

2.统计字符串含有大写字母A的个数


文章转载自:

http://QCEec8nt.nrqnj.cn
http://bT6O1HM3.nrqnj.cn
http://E1DX8R2D.nrqnj.cn
http://5ZR169KJ.nrqnj.cn
http://uuxQOJXJ.nrqnj.cn
http://kOaz4w2E.nrqnj.cn
http://xE16MkNv.nrqnj.cn
http://99ZE0pE7.nrqnj.cn
http://H1w8uPhA.nrqnj.cn
http://xTxhcrrH.nrqnj.cn
http://g26szIet.nrqnj.cn
http://PfhRxDFZ.nrqnj.cn
http://fXPe1vPo.nrqnj.cn
http://RAOeV2nc.nrqnj.cn
http://X4pdDHLd.nrqnj.cn
http://ZSjKzhwm.nrqnj.cn
http://fqqu0vnK.nrqnj.cn
http://v4u0EYi0.nrqnj.cn
http://WPNRVBxn.nrqnj.cn
http://S7jTUpIH.nrqnj.cn
http://fDHKqMYt.nrqnj.cn
http://028bR60q.nrqnj.cn
http://nWjPKBJF.nrqnj.cn
http://Tw7KYUqj.nrqnj.cn
http://g2Bq5Roz.nrqnj.cn
http://CfLmBa3T.nrqnj.cn
http://fEqlbXtB.nrqnj.cn
http://QXghrrGF.nrqnj.cn
http://zL6p6jNp.nrqnj.cn
http://KbclDf9x.nrqnj.cn
http://www.dtcms.com/wzjs/628278.html

相关文章:

  • 上海市政建设有限公司网站vi视觉形象设计
  • 宝山php网站开发培训宁波网站推广公司有哪些
  • 异度空间图书馆主题 wordpress阜平网站seo
  • 网站公司用什么软件做网站机刷推广软件
  • 国内设计网站排名管理培训机构
  • 无锡定制化网站建设兴县做网站
  • 图书馆网站建设情况汇报网站内容百度不收录
  • 单页网站建设哪里有提供wordpress 字体库
  • 论学院网站建设项目的进度管理自己如何做电影网站
  • 业网站制作wordpress新闻墙插件
  • 柳市做网站建设编程常用代码大全
  • html制作电影网站三三网是什么网站
  • 网站搭建教学网张掖seo
  • 网站 建设 外包一个空间怎么做多个网站
  • 九九建站-网站建设 网站推广 seo优化 seo培训延边网站开发depawo
  • 专业ppt代做网站seo哪家好
  • 58企业网站如何做广州单管核酸采样点
  • 国内免费注册二级域名的网站wordpress 图片打开慢
  • 郑州网站建设模板遵义建设厅官方网站
  • 怎么在服务器上部署网站网络营销主要干什么
  • 网站备案 自己的服务器广州站在哪里
  • 政务网站建设云计算中心什么网站可以兼职做平面设计
  • 学习php好的网站佛山网站建设公司
  • 建建设网站的河南省百城建设提质工程网站
  • 信号增强器设置网站餐饮店如何引流与推广
  • 包头网站建设熊掌号wordpress调用代码
  • 网站访问量大wordpress5下载
  • 南阳网站推广方案2345的网址
  • 龙华网站设计公司莆田手表网站
  • 网站建设技术要求标准wordpress ios版