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

网站后台修改内容看不见了宁波网站搜索引擎优化

网站后台修改内容看不见了,宁波网站搜索引擎优化,ppt模板免费下载可爱,台州网站建设平台今天的每日一题来自洛谷,题目要求对给定的 N N N 个正整数进行从小到大的排序,并输出结果。我们将使用经典的**快速排序算法(QuickSort)**来解决这一问题。下面我将从问题分析、代码实现、及快速排序的核心思想进行详细说明。 题…

今天的每日一题来自洛谷,题目要求对给定的 N N N 个正整数进行从小到大的排序,并输出结果。我们将使用经典的**快速排序算法(QuickSort)**来解决这一问题。下面我将从问题分析、代码实现、及快速排序的核心思想进行详细说明。

题目分析

我们需要将输入的 N N N 个整数进行排序。根据题目给定的提示, N N N 的范围可以高达 1 0 5 10^5 105,因此我们需要选用高效的排序算法。快速排序具有平均时间复杂度为 O ( N log ⁡ N ) O(N \log N) O(NlogN)

如果你不知道什么是快速排序,以及不了解原理的可以看我另外几篇博客:

  • 【数据结构】分治算法经典: 快速排序详解
  • 【数据结构】时间复杂度和空间复杂度是什么?

代码实现

//
// Created by XuanRan on 2024/10/18.
//#include "iostream"using namespace std;int n;
long long arr[10 * 10 * 10 * 10 * 10 + 5];void quickSort(int l, int r)
{int x = l, y = r, mid = arr[(r + l) / 2];while (x < y){while (arr[x] < mid) x++;while (arr[y] > mid) y--;if (x <= y){swap(arr[x], arr[y]);x++;y--;}}if (y > l) quickSort(l, y);if (x < r) quickSort(x, r);
}int main(int argc, char* argv[])
{cin >> n;for (int i = 0; i < n; i++){cin >> arr[i];}quickSort(0, n - 1);for (int i = 0; i < n; i++){cout << arr[i] << " ";}
}

代码详解

输入与数组初始化

首先,程序读取输入的整数 N N N,并通过 cin 将 N N N 个元素存入数组 arr 中。为了确保数组足够大,这里将数组大小设定为 1 0 5 10^5 105 以上。

快速排序的实现

quickSort(int l, int r) 函数是快速排序的核心部分:

  • 我们选择数组中间的元素 mid 作为基准值。
  • 通过两个指针 x 和 y,分别从左侧和右侧开始扫描数组,将比基准值小的元素放在基准值左边,比基准值大的元素放在基准值右边。
  • 当 x 和 y 指针相遇后,递归地对左右两部分数组分别进行排序,直到整个数组有序。

输出结果

排序完成后,程序遍历数组,并将排序好的元素输出。

快速排序的优缺点

优点:

快速排序的平均时间复杂度是 O ( N log ⁡ N ) O(N \log N) O(NlogN),相对于 O ( N 2 ) O(N^2) O(N2) 的冒泡排序、选择排序等,效率更高。
空间开销小,使用的是原地排序,不需要额外的存储空间。

缺点:

在最坏情况下(如数组已经有序),快速排序的时间复杂度会退化到 O ( N 2 ) O(N^2) O(N2)
为了避免最坏情况,可以采取随机选择基准值的策略,即随机化快速排序(Randomized QuickSort)。

http://www.yayakq.cn/news/264728/

相关文章:

  • 即墨网站推广wordpress后台下载
  • 夹娃娃网站如何做如何给自己的网站做seo
  • 网站如何交换链接华夏星光工业设计公司
  • 建网站在哪里做广告crm系统是什么意思啊
  • 电商网站开发选题依据wordpress 4.7.0 漏洞
  • 网站建设虚拟主机海尔集团网站是怎么做的
  • 网站建设视频图片网站模板做的比较好的
  • 服务之家网站推广公司深圳注册公司育君财税
  • 手机网站seo优化十大全app软件下载
  • 网站如何做IPV6支持快速开发平台 免费开源
  • 文山住房和城乡建设局网站帮非法集资公司做网站违法吗
  • 建设网站的子文件夹百度推广开户渠道公司
  • 有网站用nodejs做后台国外学做咖啡的网站
  • 网站建设 怎么跑业务青岛网站推广哪家效果好
  • 自己建网站需要什么软件昆山市建设局网站
  • 在猪八戒上做网站要注意什么百度会员
  • 网站开发用什么技术凡客诚品售后
  • 深圳哪里有网站建设网站建设 中企动力西安
  • 河南网站定制闵行北京网站建设
  • 自己建设网站清溪仿做网站
  • 网站建设 怎样找客户推广平台软件有哪些
  • 红酒企业网站模板uc官方网站开发者中心
  • 手机怎么建设视频网站点击最高的模板网站
  • 临河做网站学校营销型网站
  • 网站建设策划书ppt做网站需要哪些费用支出
  • 湛江企业网站seowordpress 表情 插件
  • 庆阳建设局网站网站开发 语言 架构 数据库
  • 南宁网站建设公司排行360全景地图下载安装
  • 湘潭seo网站优化做免费漫画网站有风险吗
  • 网站建设前期资料提供专业建设内涵包括哪些内容