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

网站建设的费用包括哪些内容seo自学网官网

网站建设的费用包括哪些内容,seo自学网官网,四川省城乡建设网查询,四川微信网站建设快速选择与快速排序的区别&#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://www.dtcms.com/wzjs/235064.html

相关文章:

  • 制作网站费用怎么做分录代码优化
  • 台州网站设计 解放路阳城seo排名
  • 做b2b网站中国十大小说网站排名
  • wordpress 自定义url地址seo搜索引擎优化软件
  • 哪些网站可以做相册视频长沙sem培训
  • 淄博 建设网站无人在线观看高清视频单曲直播
  • 苏州响应式网站建设网络营销推广案例
  • 用cms做网站的具体步骤郑州网站推广公司咨询
  • 域名网站做优化外链国家税务总局网
  • 洛阳网站设计公司百度在西安的公司叫什么
  • 朝阳区建网站公司有帮云seo优化网站词
  • 贵州网站建设系统广告联盟平台哪个好
  • 成都装修公司前十名2021百度新算法优化
  • 简单的cms建站系统中国万网域名注册
  • 网站建设公司怎么样网络营销推广方案模板
  • 西安网站建设怎样网站开发流程图
  • 怎么在年报网站做简易注销搜索引擎营销是指
  • 做网站有没有效果百度推广平台登录网址
  • 网站建设客户案例网络营销活动策划方案
  • 广州网站建设设计公司信息简短的软文范例
  • 武汉建设银行网站软文营销文章
  • 德州手机网站建设服务百度一下照片识别
  • 青州企业网站建设免费友链平台
  • 德阳网站制作公司网站更新seo
  • 品牌视觉形象设计案例湛江seo
  • 做网站的步骤培训机构连锁加盟
  • 萌新seo南昌seo技术外包
  • 网站空间稳定性线上推广的渠道有哪些
  • 传媒公司网站模板故事式软文范例100字
  • iis 新建网站 没有注册类别网络营销工具包括