- 博客(7)
- 收藏
- 关注
原创 递归算法理解
自己调用自己;使用逆向求解的思维来解问题;使用if-else一方面返回某些确定值;另一方则返回函数再次调用自己;它在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言中习惯用递归来实现循环。...
2021-11-25 20:40:24
118
原创 时间复杂度
a一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f (n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。b随着问题规模n的不断增大,上述时间复杂度不断增
2021-11-23 19:51:07
89
原创 二分法理解
二分法的关键思想是 假设该数组的长度是N那么二分后是N/2,再二分后是N/4……直到二分到1结束(当然这是属于最坏的情况了,即每次找到的那个中点数都不是我们要找的),那么二分的次数就是基本语句执行的次数,于是我们可以设次数为x,N*(1/2)^x=1;则x=logn,底数是2。二分法是每次取中间值与目标值进行判断,若相同则返回中间值的标号,不同则将中间值赋给取值边界较远的一边,再次取中间值进行比较,直至相同。...
2021-11-23 19:47:34
628
原创 A - 简单排序
蒜术师给了你一个1010个整数的序列,要求对其重新排序。排序要求: 奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。 输入格式输入一行,包含1010个整数,彼此以一个空格分开,每个整数的范围是大于等于00,小于等于100100。输出格式按照要求排序后输出一行,包含排序后的1010个整数,数与数之间以一个空格分开。示例输入4 7 3 13 11 12 0 47 34 98示例输出47 13 11 7 3 0 4 12...
2021-11-18 21:59:47
119
原创 C - 二进制换十进制(简单)
把一个二进制数转化为十进制数。输入格式第一行一个正整数n\ (1\le n\le 30)n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。示例输入510101示例输出21分析:二进制转十进制首先要明白各自的含义,这样才可以轻易的实现转换;如下:#include<stdio.h>#include<math.h>int main(){ int n,y,t,s=0,i;..
2021-11-17 22:15:42
210
原创 D - 暴力(稍简单)
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100100文钱买100100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数nn,用nn文钱买nn只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式输入一个正整数n。输出格式如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。如果无解,输出"No Answer."。数据范围1≤n≤200。示例输入100示例输出0 25 754 18 788 1...
2021-11-16 21:49:28
106
原创 2021-11-15 B - 简单暴力(计算今年第几天)
请你计算出xx年yy月zz日是xx年的第几天。请注意闰年对答案的影响。输入格式一行三个整数,xx,yy和zz。(1583\le x\le 21001583≤x≤2100)。数据保证输入合法。输出格式一个整数,表示是第几天。示例输入12016 3 1示例输出161示例输入21900 3 1示例输出260分析:用Switch(y)表示每个月的初始天数,if()判断是不是闰年,若是则给2月后的月的天数+1;如下:#i...
2021-11-15 22:12:33
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅