初识数据结构(狗都不学) 输入空间:存储算法的输入数据。暂存空间:存储算法运行中的变量、对象、函数上下文等数据。暂存数据:保存算法运行中的各种常量、变量、对象等。栈帧空间:保存调用函数的上下文数据;系统每次调用函数都会在栈的顶部创建一个栈帧,函数返回时,栈帧空间会被释放。指令空间:保存编译后的程序指令,实际统计中一般忽略不计。输出空间:存储算法的输出数据。通常,空间复杂度统计范围是暂存空间输出空间函数在尾位置调用自身,或一个尾调用本身的其他函数等,称为尾递归。计算机中组织与存储数据的方式。
结构体排序 题目:小蒜给出了班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。输入格式第一行为n(0 < n < 20)n(0<n<20),表示班里的学生数目;接下来的nn行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过2020,成绩为一个不大于100100的非负整数。输出格式把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。Sample Inpu...
C语言求对称日 题目:求对称日。输入:输入两个年份。输出:输出两个年之间的对称日。输出总对称日日数。输入样例:1000 3000输出样例:10011001 10100101 10111101 10200201 1021120110300301 10400401 10500501 10600601 1070070110800801 10900901 11011011 11100111 1111111111200211 11211211 11300311 11400411 1150
C语言二分思想(稍简单) 题目描述:蒜头君手上有个长度为n的数组A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问在数组A中,大于等于x的最小值是多大?输入格式:第一行输入两个整数n和m,分别表示数组的长度和查询的次数。接下来一行有n个整数 ai。接下来m行,每行有1个整数x,表示蒜头君询问的整数。输出格式:对于每次查询,如果可以找到,输出这个整数。否则输出−1。数据范围:1≤n,m≤105,0≤x≤106。输入样例...
时间复杂度 什么是时间复杂度?时间复杂度就是用来方便开发者估算出程序的运行时间,简单来说,一个程序越简单,运行时间越短,时间复杂度越低,反之则越高。当然,时间复杂度也要考虑测试样例的复杂性。时间复杂度记为O(f(n))。什么是大O?大O其实就是数据量级突破一个点且数据量级非常大的情况下所表现出的时间复杂度。大O用来表示上界的,当用它作为算法的最坏情况运行时间的上界,就是对任意数据输入的运行时间的上界。例子:插入排序的时间复杂度我们都说是O(n^2),快速排序是O(nlogn)。严格从大O的定
二分法思想 思想:二分法,即一分为二的方法。在一个区间内,用目标数与中间数比较,若目标数大于中间数,则中间数后的一个数与最后一个数组成新区间,再让目标数与新区间的新中间数比较,若目标数小于中间数,则中间数前的一个数与第一个数组成新区间,再让目标数与新区间的新中间数比较,依此类推,直到最新区间的下限大于上限,即区间不成立为止。C语言代码:注意:采用二分法之前,需要将数据排好序。...
C语言二分法+时间复杂度(简单) 题目描述:蒜头君手上有个长度为n的数组A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问整数x是否在数组A中。输入格式:第一行输入两个整数n 和m,分别表示数组的长度和查询的次数。接下来一行有n个整数ai。接下来m行,每行有1个整数x,表示蒜头君询问的整数。输出格式:对于每次查询,如果可以找到,输出"YES",否则输出"NO"。数据范围:1≤n,m≤10^5,0≤x≤10^6。输入样例:10 5...
C语言约瑟夫环(简单版) 传说约瑟夫当年活下来就是靠快速计算这个问题。n个人围成一圈,编号依次为1,2,3…n。从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。输入格式两个整数n,m,1≤n,m≤100。输出格式n个用空格分隔的整数,表示出圈人的编号。输入样例:6 4输出样例:4 2 1 3 6 5解题思路:先输入人数和出圈的数,定义一个数初始化为0用来计数,同时作为循环条件,再定义一...
C语言简单排序 题目描述:蒜术师给了你一个10个整数的序列,要求对其重新排序。排序要求: 奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。 输入格式:输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。输出格式:按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。输入样例:4 7 3 13 11 12 0 47 34 98输出样例:47 13 11 7 3 0 4 1...
C语言暴力(稍简单) 题目描述:百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100100文钱买100100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数nn,用nn文钱买nn只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式:输入一个正整数nn。输出格式:如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。如果无解,输出"No Answer."。数据范围:1≤n≤200。输入样例:100输出样例:0 25 7...
C语言二进制换十进制(简单) 题目描述:把一个二进制数转化为十进制数。输入格式:第一行一个正整数n( 1 ≤n ≤30 ),表示二进制数的长度。第二行一个二进制数。输出格式:输出一个整数,表示对应的十进制数。输入样例:510101输出样例:21做题思路:先确定二进制数长度,注意输入完成后的回车要用getchar()函数给吃掉,之后初始化为0一个数,先让其乘二,再让二进制数的每一位与'0'做差并加入其中,最后输出。#include<stdio.h>int main...
C语言计算今年第几天 题目描述:请你计算出xx年yy月zz日是xx年的第几天。请注意闰年对答案的影响。输入格式:一行三个整数,xx,yy和zz。(1583\le x\le 21001583≤x≤2100)。数据保证输入合法。输出格式:一个整数,表示是第几天。输入样例1:2016 3 1输出样例1:61输入样例2:1900 3 1输出样例2:60解题思路:先输入年月日,再根据年份判断为闰年还是平年,再根据每月的天数运用暴力手段计算出第几天,注意...
C语言简单排序 题目描述:蒜头君给了一个长度为NN(不大于500500)的正整数序列(正整数的值不超过NN),请将其中的所有奇数取出,并按升序输出。输入格式共2行:第1 行为N;第2行为N个正整数,其间用空格间隔。输出格式增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。输入样例:101 3 2 6 5 4 9 8 7 10输出样例:1,3,5,7,9解题思路:先将所有的数存入数组a,再将其中的奇数存入数组b,最后将数组b排序,升序输出...
C语言计算n的阶乘 题目描述:给定整数n,计算n!并输出。输入要求:输入正整数n(n≤12)。输出要求:输出n!的值。输入样例:5输出样例:120解题思路:让数字从1累乘到n,即先定义x=1,从1开始不断加1累乘#include <stdio.h> int main(){ int n,i; int x=1; scanf("%d",&n); for(i=1;i<=n;i++) x*=i;//累乘 printf("%d",x); return 0; }
C语言逢七过 题目描述:一群人围坐成一圈玩报数的游戏。游戏规则是:从1开始报数,若遇到七的倍数或者个位为7的数则击掌代替,若犯错则要受罚。可是这些人太聪明了,竟然没人犯错!请问同样聪明的你,现在当报数到N(0<n<=10^7)时,击掌次数共是多少?输入输出示例:输入:29#include <stdio.h>int main(){ int i,n;//定义变量 int sum=0; scanf("%d",&n);//输入正整数n
C语言最小数与数列第一个数交换 题目描述:输入一个正整数n(1<n<100),再输入n个整数,将最小数与第一个数交换(若最小数就在第一位,不需要交换),输出交换后的n个数。【输入】第一行输入一个正整数n。第二行输入n个整数【输出】输出交换后的n个整数。输入输出示例:输入:53 5 2 8 1输出:1 5 2 8 3#include<stdio.h>int main(){ int n,a[100],i,k,min;//定义变量 数组; scanf("%d",&
C语言插入排序 描述:给出若干个数,将数字存储在数组中,然后使用插入排序,按照升序排列出输出数字。输入一个整数n表示有n个数,接着输入这n个数。按照升序输出这n个数。输入输出示例:输入:53 2 4 5 4输出:2 3 4 4 5#include<stdio.h>int main(){ int n; scanf("%d",&n);//输入n以确定接下来可输入的数字个数 int m; int a[n]; int l; for(l=0;l<n;l++
C语言找大小 描述:首先输入一个整数N(0<=N<=100),紧接着在下一行连续输入N个数。然后输出这一组数的最小数,和最大数。提示:输入的这N数,可以有小数也可以有负数。输出之间用换行隔开。输入输出示例:输入:51 5 3 22 54输出:154#include<stdio.h>int main(){ int N; scanf("%d",&N);//输入可输入的数字个数 float M; int i; float a[N].
C语言单个字符类型判断 题目描述从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。输入要求输入一个字符。输出要求如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。输入样例1输出样例digit#include<stdio.h>int main(){ char ch; scanf(