- 博客(6)
- 收藏
- 关注

原创 简单递归算法
Fibonacci数列的增长速度是惊人的。由于数列的值增长太快,对于n,你只需要输出F[n]%2147483647。斐波列契数列(Faibonacci)0,1,1,2,3,5,8,13,21,34……这是一个基础的递归代码,求两个数的最大公因数,在函数里调用函数,是不是看起来很简单,我们来做题。递归就是在函数里调用函数(必须是本身),这可能有点难理解,我给你们打段代码就行了。递归的时间复杂度非常高,O(2^n),所以递归要谨慎使用,TLE就不好了。这题非常简单,直接套公式就行了,上代码。
2023-07-18 11:18:50
1786
原创 搜索与回溯算法(骗分算法)
搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。
2023-08-09 14:54:27
390
1
原创 简单的选择排序
这题先把奇数放到数组b中,用cnt计数,然后选择排序,最后输出的时候,判断i是否等于cnt,如果i不等于cnt,输出逗号。(1)基本思想:每一趟从待排序的数据元素中选出最小的一个元素,顺序放在待排序的数列的最前,直到全部待排序的数据元素排完。3.在a[2]~a[n]中选择值最小的元素,与第1位置元素交换,则把最小值元素放入a[2]中,……2.在a[1]~a[n]中选择值最小的元素,与第1位置元素交换,则把最小值元素放入a[1]中。第七趟排序后:13 27 38 49 49 65 76 【97】。
2023-07-24 10:42:28
51
原创 冒泡排序简单
冒泡排序的思想:以n个人战队为例,从第1个开始,依次比较相邻的两个是否能逆序对(高在前,矮在后),若逆序就交换这两人,即第1个和第2个比,若逆序就交换两人,接着第2个和第3个比,若逆序就交换两人,接着第3个和第4个比,若逆序就交换两人,……,直到n-1和n比较,经过一轮比较后,则把最高的人排在最后,即将最高的人像冒泡一样逐步冒到相应的位置。第二轮从第1个开始,依次比较相邻的人是否逆序,若逆序就交换两人,直到n-2和n-1比较。5 6 3 4 1 2(5,6交换)。5 3 4 1 6 2(1,6交换)
2023-07-22 15:51:41
58
原创 初学简单函数
这题我们需要用到上面判断质数的代码,然后for循环从n枚举到m,如果i和i+2都是质数,输出,cnt++,最后for循环外判断cnt==0,输出empty。我们都知道,任何一个数(0除外)都可以表示成2个数相乘,所以我们只需要枚举这个数的一半,就可以判断这个数是不是质数了。两个相差为2的素数称为素数对,如5和7,17和19等,要求找出给定范围内所有的素数对。显然,这个代码会超时,因为时间复杂度是O(n),10^20太大了,所以我们要优化。给定正整数n,求不大于n的正整数的阶乘的和(即求1!
2023-07-18 09:28:09
100
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人