- 博客(8)
- 资源 (1)
- 问答 (57)
- 收藏
- 关注
原创 C++知识:枚举
什么是枚举枚举算法是一种经典的暴力算法,是通过遍历所有候选答案以找到正确的解的问题解决策略;枚举的基本框架1.给出解空间建立数学模型,确立候选答案的范围,从数学的角度说:就是给出可能解的集合,这是最关键的一步,确立正确的解空间是应用枚举算法的前提。2.找到枚举的具体方法在确立了正确的解空间后,还要知道怎么枚举才能找到正确的答案。对于不同的问题,枚举的具体方法很可能是不同的。枚举的种类1.循环枚举通过数层循环来达到穷举解空间里的解,找到正确的答案,是最基本的枚举算法例:求小于 N
2022-02-06 12:01:12
2044
2
原创 C++知识:快速排序
快速排序(QuickSort)是排除稳定性因素后最常用的排序。算法描述:从数列中挑出一个元素作为基准。 重新排列数列,把所有的比基准小的放在基准前面,反之放在后面(一样大可任意一边)完成后基准处在分区的中间位置。 通过递归调用把小于基准元素和大于基准元素的子序列进行排序。算法可视化:#include <iostream>using namespace std;void Qsort(int arr[], int low, int high){ if (hig..
2022-02-06 11:53:15
680
原创 C++知识:插入排序
插入排序插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已经排序好的有序表中,从而得到一个新的,记录数量增1的有序表。排序方法1、简单方法首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后将R[k..i-1]中的记录均后移一个位置,腾出k位置上的空间插入R[i]。注意:若R[i]的关键字大于等于R[1..i-1]中所有记录的关键字,则R[i]就是插入原位置。2.改进的方法一种查找.
2022-02-06 11:39:46
197
原创 C++知识:冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。双重循环时间 O(n^2)算法描述:比较相邻两个数。它们是逆序的,就交
2022-02-06 11:38:23
198
原创 C++知识:选择排序
选择排序(Select Sort) 是直观的排序,通过确定一个 Key 最大或最小值,再从待排序的的数中(无序区)找出最大或最小的交换到对应位置。再选择次之。双重循环时间复杂度为 O(n^2)算法描述:在一个长度为 N 的无序数组中,第一次遍历第1..第n个数找到最小的和第一个数交换。 第二次遍历第2..第n个数,找到最小的数和第二个数交换。 重复以上操作直到第 n-1 次遍历第n-1和第n个数找到最小的和第n-1个数交换,排序完成。 算法可视化:代码实现:cin>>.
2022-02-06 11:25:14
678
原创 C++知识:排序
排序排序算法是日常使用最频繁的一个算法,生活中也很常见什么排队呀按照高矮次序呀,分数按照一个从高到低的排序等等,但是如果是要设计出来面对基数很大又要很快的排序方法这就是需要很大难度了,先给大家看看排序的种类有哪些,和其对应的时间空间复杂度。最后一栏有个稳定性给看官解释一下:稳定:如果 a 原本在 b 前面,而 a=b,排序之后 a 仍然在 b 的前面。不稳定:如果 a 原本在 b 的前面,而 a=b,排序之后 a 可能会出现在 b 的后面。...
2022-02-05 19:57:24
271
原创 知识:高精度加法和减法
嗯... 首先让我们引入高精度这个东西....相信大家都会做A+B Problem 这道题....输出的是A+B 的值....可你想过没有,如果A= 5983461827658923256597314923593449492545242655621498167329758256231975822594359252779832914372582828292235591346798922923,B = 938287289238285923438962825923235943876895379767936.
2022-02-05 19:53:56
102
1
原创 知识:高精度乘法
高精度乘法,实质和加减法一样,为模拟乘法竖式运算。这里先讲一下竖式计算的方法和原理:设相乘的两个数A=anan-1...a1a0,B=bmbm-1...b1b0(ai,bi分别表示A和B数位上的每一位数字),则A*B=(an*10n+an-1*10n-1+...+a1*101+a0*100)*(bm*10m+bn-1*10m-1+...+b1*101+b0*100)。上式利用多项式乘法展开后我们发现:ai*10i*bj*10j=ai*bj*10i+j。于是我们有了这样的做法:将A和B的每位数字拆分.
2022-02-05 19:48:19
365
c++jzoj编程:5503: 采桔子排排队3思路及代码
2022-02-02
c++编程算法和程序,3844: 快速求和
2022-02-01
请大家推荐一下有那些新版本的c++编辑器
2022-01-31
c++编程:2963: 分等第统计
2022-01-31
jzxxoj编程:4420: 寻找自我3
2022-01-30
jzxxoj编程:4696: 画数阵图
2022-01-30
jzxxoj编程:4696: 画数阵图
2022-01-30
c++算法:3891: 进制数
2022-01-29
jzxoj编程算法:3938: 循环4之求和4
2022-01-29
c++编程算法程序:3935: 循环抓硬币
2022-01-29
jzxxoj编程C:3996: 四位数(新旧相乘)
2022-01-29
jzxxoj编程C:1165: 【入门】最小数
2022-01-29
jzxxojc++;3935: 循环抓硬币
2022-01-27
jzoj9248: 幸运数
2022-01-25
7473: 小K的农场咋做?
2022-01-24
取数游戏 Description
2022-01-24
问题 A: 【提高】字符串的相似度
2022-01-24
jzxxoj编程:求解 2934: 数组操作/怎样不超时
2022-01-23
c++/c/java/php/python/pascal/c#/go/
2022-01-22
写Java的时候,idea运行不了项目怎么办
2022-09-30
C++初级题:9621: 停车费
2022-02-19
C++WJOI简单题:9622: 倒序数之和
2022-02-18
C++初级2018考试试题A:9368: 汽车行驶2
2022-02-18
C++初级考试试题(简单)的两题:汽车行驶1和汽车行驶2
2022-02-14
c++初级入门: 9197: 锯木棍(stick)
2022-02-12
4324: 【二分】二分查找
2022-02-11
c++初级班真是试题:4308: 大象锯木头
2022-02-11
c++初级班真是试题:4308: 大象锯木头
2022-02-11
谁有USACO历年比赛的测试数据,请发到我的邮箱里
2022-02-11
2061:【例1.2】梯形面积
2022-02-10
c++初级班测试试题9470: 采桃子c++代码
2022-02-09
jzxxoj:1662: 【基础】班委确定
2022-02-09
C++编程问题求解:9634: 孙悟空喝水
2022-02-07
jzxxojc++数组:2935: 序列翻转
2022-02-06
jzxxojc++编程:3934: 方幂
2022-02-06
c++字符串问题求解:3840: 字母个数
2022-02-04
这道Pascal代码哪里错了,请大家发一下正确代码
2022-02-03
c++递归问题求解:2790: 菲波那契数列
2022-02-03
c++jzxxoj编程:5504: 采桔子排排队4
2022-02-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人