
C语言基础
小安同学apj
这个作者很懒,什么都没留下…
展开
-
程序设计与算法(六)_深度优先搜索
乾坤未定,你我皆是黑马例题1:在图上寻找路径在图上如何寻找从1到8的路径运气最好:1->2->4->8运气稍差:1->2->4->5->6->8运气坏:1-3->7->9=>7->A=>7=>3->5->6->8(双线箭头表示回退)不连通的图,无法从节点1走到节点8完整的尝试过程如下...原创 2020-04-16 17:11:10 · 470 阅读 · 0 评论 -
程序设计与算法(六)_动态规划
动态规划解题的一般思路将原问题分解为子问题确定状态确定状态转移方程(子问题和原问题的状态转移)能用动态规划解决的问题的特点:问题具有最优子结构的性质无后效性,只跟当前状态有关例题1:最长上升子序列(百炼2757)输入数据:输入的第一行是序列的长度N(1<=N<=1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000。71 7 3 5 ...原创 2020-04-12 17:57:51 · 348 阅读 · 0 评论 -
程序设计与算法(三)_递归
例题1:汉诺塔古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动的步骤。C++:#include <iostream>#include <cstdio&...原创 2020-03-29 16:30:18 · 462 阅读 · 0 评论 -
程序设计与算法(二)_枚举
一、枚举现实生活中有很多问题是没有策略或公式的,只能一个个枚举1. 完美立方形如a3=b3+c3+d3a^3=b^3+c^3+d^3a3=b3+c3+d3的等式被称为完美立方,编写一个程序,对任给的正整数N(N<=100),寻找所有的四元组(a,b,c,d),使得满足完美立方,其中a,b,c,d大于1小于等于N,且b<=c<=d。输入:一个正整数(N<=100)。...原创 2020-03-06 22:27:18 · 672 阅读 · 0 评论 -
C++基础-第13周
STL中的平衡二叉树1)有时需要在大量增加、删除数据的同时,还要进行大量的查找2)希望增加数据、删除数据、查找数据都能在log(n)复杂度完成3)排序+二分查找显然不可以,因为加入新数据就要重新排序4)可以使用“平衡二叉树”数据结构存放数据,体现在STL中,就是以下四种“排序容器”:multiset 、set 、 multimap 、map1、multisetmultiset<...原创 2019-11-30 16:23:45 · 275 阅读 · 0 评论 -
C++基础-第12周
STL排序算法sortSTL:(Standardemplate Liary)原创 2019-11-28 16:23:03 · 176 阅读 · 0 评论 -
C++基础-第11周
程序或算法的时间复杂度一个程序或算法的时间效率,称为“时间复杂度”复杂度分为:平均复杂度和最坏复杂度,两者可能一致,也可能不一致程序或算法的时间复杂度:在无序数列中查找某个数(顺序查找):O(n)O(n)O(n)平面上有n个点,要求出任意两点间的距离:O(n2)O(n^2)O(n2)插入排序、选择排序、冒泡排序:O(n2)O(n^2)O(n2)快速排序:O(n∗log(n))O(n*...原创 2019-11-27 18:07:23 · 252 阅读 · 0 评论 -
冒泡排序(c++和python实现)
算法思想:1)将整个数组a分为有序和无序的两个部分。前者在右,后者在左;2)开始,整个数组都是无序的。有序的部分没有元素;3)每次要使得无序部分最大的元素移动到有序部分第一个元素的左边。移动的方法是:依次比较相邻的两个元素,如果前面的比后面的大,就交换它们的位置。这样,大的元素就像水里气泡一样不断向上浮。移动结束,有序部分增加了一个元素;4)直到无序的部分没有元素。动图展示C++实现...原创 2019-11-23 15:49:04 · 182 阅读 · 0 评论 -
插入排序(c++和python实现)
算法思想:1)将整个数组a分为有序的部分和无序的部分。前者在左边,后者在右边;2)开始有序的部分只有a[0],其余都属于无序的部分;3)每次取出无序部分的第一个(最左边)元素,把它加入到有序部分。假设插入到合适位置p,则原p位置及其后面的有序部分元素,都向右移动一个位子,有序的部分即增加了一个元素。4)直到无序的部分没有元素C++实现#include <iostream>...原创 2019-11-23 15:24:10 · 101 阅读 · 0 评论 -
选择排序(c++和python实现)
算法思想:如果有N个元素需要排序,那么首先从N个元素中找到最小的那个放在第0个位置上(交换位置),然后再从剩下的N-1个元素找到最小的放到第1个位置上,然后再从剩下的N-2个元素中找到最小的放到第2个位置上…直到所有元素都就位。C++实现#include <iostream>#include <cstring>using namespace std;void S...原创 2019-11-23 14:53:07 · 126 阅读 · 0 评论 -
C++基础-第10周
一、结构:现实需求,常常需要用一组不同类型的数据来描述一个事务,比如一个学生的学号、姓名和绩点。C++允许程序员自己定义新的数据类型:结构struct student{ unsigned int id; char szname[20]; float fgpa;}student即成为自定义类型的名字,可以用来定义变量如:student s1,s2;...原创 2019-11-20 21:50:36 · 246 阅读 · 0 评论 -
C++基础-第8周
一、指针的基本概念定义:类型名 * 指针变量名int * p //p是一个指针,变量p的类型是int *char * pc; //pc是一个指针,变量pc的类型是char *float *pf ;//pf是一个指针,变量pf的类型是float *内容:int * p = ( int * ) 40000p内容:40000p指向地址40000,地址p就是地址4000...原创 2019-11-14 18:58:25 · 223 阅读 · 0 评论 -
C++基础-第六周
一、函数函数:实现某一个功能,将反复使用的代码包装起来形成一个功能模块,只需一条语句。//判断是否是素数的函数bool isprime(unsigned int n ){ if (n<=1) return false; for (int i=2;i<n;++i){ if (n%i==0) return false; ...原创 2019-10-28 14:05:43 · 387 阅读 · 0 评论 -
C++基础-第五周
一、数组例题1:接收键盘输入的100个整数,然后将他们按原顺序相反的顺序打出来。如何存放这100个整数???定义100个变量?通过数组来定义这100个数一维数组:类型名 数组名[元素个数]如:int a[100] 名字为a的数组,有100个元素,每个元素都是一个int 类型的变量。a[0] a[1] a[2] ...... a[99] 数组下标从...原创 2019-10-25 19:12:41 · 484 阅读 · 0 评论 -
C++基础-第四周
一、break语句和contiune语句break:跳出循环countine:跳出这一次循环,执行下一次循环例题1:二、OJ输入数据的处理scanf(...)表达式的值是int,表示成功读入的变量个数三、用freopen重定向输入注:C++中,想要写“\”时,必须写两个斜杠。四、循环例题选讲1例题1:输入若干个整数(可正可负,不超过i...原创 2019-10-22 22:18:41 · 206 阅读 · 0 评论 -
C++基础-第三周
一、条件分支结构if (表达式1){ 语句组1}else if (表达式2){ 语句组2}else{ 语句组n}例题1:写一个判断整数奇偶性的程序,是奇数,输出“it‘s odd",是偶数,输出'lt's even"。int main(){ int n; scanf("%d",&n); if (n % 2 ==1...原创 2019-10-21 11:04:49 · 255 阅读 · 0 评论 -
C++语言基础-第二周
一、输入输出控制符int a =3;printf("i want to buy %d books for %f dollars",3,4.5);double f scanf("%d%f",&n,&f);%d 输出int变量 %c 输出字符串变量 %f 输出float变量,小数点后6位 %.nf 输出浮点数,小数点后n位 二、用...原创 2019-10-20 11:46:19 · 328 阅读 · 0 评论 -
C++语言基础-第一周
一、信息在计算机中的表示用0和1表示各种信息二进制数的一位,取值只能是0或者1,称为一个“bit",简写b;八个二进制位称为一个字节(byte),简写B;1024字节=1KB;1024KB=1MB;1024M=1GB;1024GB=1TB;ASCLL编码:由八个字节组成的串,共有256种不同的组合,足以表示所有的字母和符号图片、视频和可执行程序,也可以用0和1表示;K进...原创 2019-10-19 22:53:31 · 364 阅读 · 0 评论