NOIP-C++大神培养计划Step1.2.4快速排序

之前我们用到的排序的时间复杂度都是O(n^2)的,并不乐观,但是我们依然有更快的算法,它就是快速排序,时间复杂度O(n log n)。 我们还是先看看快速排序的原理: 可能这个排序有些人看不懂,就让我们来讲一下它的基本原理吧。 比如我们来排序6  1  2  7&nbs...

NOIP-C++大神培养计划Step1.2.2——排序之插入排序

上一节课呢,我们学习了冒泡排序,今天我们就来学学插入排序。 先看一个图 很显然,我们要选出一个数,并找到他的位置,就像图中的一样。 有过一定生活经验的人会发现,这句就是打牌时的理牌嘛! 我们首先要用O(n)的时间来枚举每一个点,再用O(n)的时间查它之前在序列中的应有位置,所以,总复杂度是O(n^2...

C++ 入门教程开发文档

42 课时 |
17490 人已学 |
免费
开发者课程背景图

NOIP-C++大神培养计划Step1.2.1——排序之冒泡排序

在我们解决一些问题时,我们需要将所给的数据排序。排序算法也是一门基础算法,排序有许多种:冒泡排序,插入排序,选择排序,桶排序,快速排序,归并排序,希尔排序,堆排序,拓扑排序等(最后两种以后学数据结构和图论再讲)。 今天,我们就来走进第一个排序——冒泡排序。 我们先来看一个图: 这就是冒泡排序的基本原...

NOIP-C++大神培养计划 实战篇——时间复杂度

时间复杂度是同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。 计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项...

NOIP-C++大神培养计划 Step1.1.2基础算法——模拟算法2

大家好,我是小笨笨,今天我们继续来讲解模拟算法。 我们直接上例题! 栗1.1.2-1 洛谷P1014 Cantor表https://www.luogu.org/problemnew/show/P1014题目描述现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表...

NOIP-C++大神培养计划Step1.1.1基础算法——模拟算法1

模拟算法,可以说是最基础的算法了。它的基本定义没太多意思:就是去模拟题目的要求。题意要你怎么做,你就怎么做,看懂了题目,基本上就会做了。 举一个大家耳熟能详的栗子。 A+B Problem给定两个整数A和B,输出他们的和。 这是学习C++的最简单的例题之一。代码如下: #include<ios...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

社区圈子

开发与运维
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
6411+人已加入
加入
相关电子书
更多
继承与功能组合
对象的生命期管理
移动与复制
立即下载 立即下载 立即下载