PTA 之 数组元素循环右移问题
摘要:一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的
阅读全文
posted @
2025-01-20 15:16
Arthurian
阅读(8)
推荐(0) 编辑
牛顿迭代法实现开平方
摘要:笔算开平方的算法通常使用牛顿迭代法,也称为牛顿切线法。 算法步骤如下: 选择一个初始猜测值x0,一般来说可以选择1。 根据牛顿迭代法的公式,计算下一个猜测值x1 = (x0 + a/x0)/2,其中a是待求平方根的数。 重复步骤2,直到x1和x0的差值小于一个给定的精度eps,即|x1 - x0|
阅读全文
posted @
2023-09-10 15:47
Arthurian
阅读(261)
推荐(0) 编辑
动态规划之矩阵连乘
摘要:什么是动态规划 动态规划(英语:Dynamic programming,简称 DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 1 /* Matrix.h */
阅读全文
posted @
2021-06-17 14:54
Arthurian
阅读(192)
推荐(0) 编辑
分治法之棋盘覆盖
摘要:利用分治思想实现一个棋牌覆盖的简单程序,以复习分治法的内容。 1 #include<iostream> 2 #include<cmath> 3 4 using namespace std; 5 6 #define n 4 7 int tile = 0; 8 9 int board[n][n]; 10
阅读全文
posted @
2019-11-25 00:09
Arthurian
阅读(587)
推荐(0) 编辑
动态规划之0-1背包问题
摘要:0-1 背包问题是动态规划中一个典型的问题。 问题描述 给定n种物品和一个背包,物品 i 价值 wi 和重量 vi 已知,确定装入背包的物品方案,使得包内物品总价值最大。 算法过程 设n个物品重量存储在w[n]中,价值存储在数组v[n]中,背包容量位C,数组V[n+1][C+1]存放迭代结果,其中V
阅读全文
posted @
2018-05-30 13:00
Arthurian
阅读(726)
推荐(0) 编辑
数值积分之Simpson公式与梯形公式
摘要:Simpson(辛普森)公式和梯形公式是求数值积分中很重要的两个公式,可以帮助我们使用计算机求解数值积分,而在使用过程中也有多种方式,比如复合公式和变步长公式。这里分别给出其简单实现
阅读全文
posted @
2017-11-23 18:11
Arthurian
阅读(5254)
推荐(0) 编辑
浅议最小二乘法
摘要:最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
阅读全文
posted @
2017-11-17 21:26
Arthurian
阅读(346)
推荐(1) 编辑
图解常用算法
摘要:我们经常会用到一些算法,而大部分算法过于抽象,记忆起来比较困难,而使用图解可以帮助我们更好地理解和记忆这些算法。 一、深度优先搜索算法(DFS) 深度优先搜索算法(Depth-First-Search),是搜索算法的一种。它是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用
阅读全文
posted @
2017-11-10 20:49
Arthurian
阅读(3318)
推荐(6) 编辑
数据结构之插入排序
摘要:插入排序是很常见的排序方式,通常我们使用的插入排序有下面几种: 1、直接插入排序 算法思想:第 i 趟插入排序为:在含有i-1个元素的有序子序列中插入一个元素,使其成为含有i个元素的有序子序列。在查找插入位置的过程中,可以同时后移元素。整个过程进行n-1趟插入,即先将整个序列的第1个元素看成是有序的
阅读全文
posted @
2017-11-05 16:28
Arthurian
阅读(381)
推荐(0) 编辑
拉格朗日(Lagrange)插值算法
摘要:拉格朗日插值(Lagrange interpolation)是一种多项式插值方法,指插值条件中不出现被插函数导数值,过n+1个样点,满足如下图的插值条件的多项式。也叫做拉格朗日公式。 这里以拉格朗日3次插值为例,利用C++进行实现: 1 //利用lagrange插值公式 2 #include<ios
阅读全文
posted @
2017-10-28 10:35
Arthurian
阅读(6834)
推荐(0) 编辑
Java之反转排序
摘要:顾名思义,反转排序就是以相反的顺序把原来的数组内容重新进行排序。反转排序算法在我们的程序开发中也是经常用到的。而反转排序的基本思想也很简单,就是把数组最后一个元素与第一个元素进行交换,倒数第二个与第二个进行交换,依次类推,直到把所有元素反转替换。一起来看个例子 1 /** 2 * 反转排序算法实例
阅读全文
posted @
2017-10-07 00:04
Arthurian
阅读(1403)
推荐(0) 编辑
贪心算法
摘要:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择的算法。即不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有
阅读全文
posted @
2017-10-01 01:06
Arthurian
阅读(247)
推荐(0) 编辑
堆排序算法
摘要:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序的平均时间复杂度为Ο(nlogn)。那么什么是堆呢? 堆是数据结构中的一种重要结构,了解“堆”的概念和操作,可以帮助我
阅读全文
posted @
2017-09-29 17:11
Arthurian
阅读(585)
推荐(0) 编辑
常见算法之冒泡排序
摘要:冒泡排序由于其简单,通常是我们学习各类编程语言首先选择学习的一个排序算法。 Java版: 1 public class BubbleSort { 2 public static void main(String[] args) { 3 // 创建一个数组,这个数组元素是乱序的 4 int[] arr
阅读全文
posted @
2017-09-22 21:44
Arthurian
阅读(355)
推荐(0) 编辑
A*算法
摘要:A* (A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法。注意是最有效的直接搜索算法。之后涌现了很多预处理算法(ALT,CH,HL等等),在线查询效率是A*算法的数千甚至上万倍。公式表示为: f(n)=g(n)+h(n),其中 f(n) 是从初始点经由节点n到目标点的估价函数,g(n
阅读全文
posted @
2017-07-01 23:26
Arthurian
阅读(406)
推荐(0) 编辑
数据结构之二叉树(二)
摘要:输出二叉树中所有从根结点到叶子结点的路径 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 struct BiTNode 6 { 7 char m_value; 8 BiTNode *m_left; 9 BiTN
阅读全文
posted @
2017-06-30 19:20
Arthurian
阅读(326)
推荐(0) 编辑
数据结构之二叉树(一)
摘要:设计和编写程序,按照输入的遍历要求(即先序、中序和后序)完成对二叉树的遍历,并输出相应遍历条件下的树结点序列。 1 //递归实现 2 #include<iostream> 3 #include<string> 4 using namespace std; 5 6 typedef struct BiT
阅读全文
posted @
2017-06-30 19:20
Arthurian
阅读(302)
推荐(0) 编辑
算法的时间复杂度和空间复杂度
摘要:1.空间复杂度 一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时
阅读全文
posted @
2017-06-30 19:02
Arthurian
阅读(274)
推荐(0) 编辑
二分查找的实现
摘要:二分查找又称折半查找,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这
阅读全文
posted @
2017-06-29 15:09
Arthurian
阅读(252)
推荐(0) 编辑