算法设计与应用——算法基础
斐波那契问题
假设兔子出生一个月后能繁殖,以后每月产一个孩子,一直下去直到永远。从一个兔子开始,问n个月后有多少个兔子?
递归算法求解
1234function Fib1(n)if n = 1 return 1if n = 2 return 1return Fib1(n-1) + Fib1(n-2)
计算 F200 大概需要 2140 个运算.在一个快速计算机上要花多长时间?(在NEC Earth Simulator上花2^92秒)
指数爆炸,所以算法很重要
算法的基础概念算法的特征
输入性:有零个或多个外部量作为算法的输入。
输出性:算法产生至少一个量作为输出。
确定性:组成算法的每条指令清晰、无歧义。
有穷性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。
可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
程序是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(4)即有穷性。如操作系统
算法的4个标准
正确性:在合理的数据输入下,能在有限的时间内得出正确的结果。
可读性:应易于人的理解,易于调试。
健壮性: ...
Android_ListView与GridView练习
需求分析
请用ListView和自定义Adapter实现下列页面(可以自行设计并添加元素,以丰富该页面) :
(1) 界面元素如图1所示,内容可以比图1更丰富(2) 实现图1的界面列表和操作栏(Toolbar)(3) 点击任意列表项,出现第二个页面,如图2所示(点击了“北京市”,出现北京市所有区的页面)
(4) 图2的内容请用GridView和自定义的Adapter实现。(5) 实现图2 的Toolbar。
这里我反复看了几次,这里的toolbar只要求设置一个样式而已,并不用编写什么实质的功能,重点是listview和gridview的实现,和两个页面界面间交互
设计界面一布局文件的设计修改themes.xmlactivity布局文件listitem布局文件效果预览
因为toolbar和actionbar互相冲突会造成闪退,首先要在themes.xml主题布局文件中设置一个NoActionBar的style,这里项目规模比较小,我们把默认所以Activity采用主题style直接改成改成NoActionBar。
12345678910111213141516<res ...
Flutter安装踩坑指南
前言
昨天安装flutter时,遇到了不少问题,特此开了这篇博文写一下踩坑经历,解决方法,顺便做一下归档
有些安装问题参考了很多文档,博客,因为过于零散,这里只给出部分出处
1.3 搭建Flutter开发环境 | 《Flutter实战·第二版》 (flutterchina.club)
Flutter文档 - Flutter中文网 (flutterchina.club)
在 Windows 10 配置 Flutter 开发环境 | Laohoo (hujiyi.github.io)
在 Windows 操作系统上安装和配置 Flutter 开发环境 | Flutter 中文文档 | Flutter 中文开发者网站
Flutter项目启动一直卡在Running Gradle task ‘assembleDebug‘问题解决 - JavaShuo
有些问题因为中国大陆的原因暂时无解,但不影响flutter的使用,具体请看下文
由于Flutter会同时构建Android和IOS两个平台的发布包,所以Flutter同时依赖Android SDK和iOS SDK,在安装Flutter时也需要安 ...
Tag Plugins Plus标签插件的使用测试
前言
在安装了店长的Tag Plugins Plus标签插件之后,想逐个测试一下各个标签的写法,以便以后自己回顾,因此有了这篇博客(不是想水一篇博文)。
插件的出处,安装,和完整的使用教程请看店长的原文,这里就不赘述了。Tag Plugins Plushttps://akilar.top/posts/615e2dec/
因为是方便我个人使用,所以各个标签的测试并不会遵循一定的顺序
一些标签组件的组件的样式,我小幅度魔改过,所以可能按照教程写出来标签样式跟我不太一样,但功能是相同的
然后学业繁忙,本博文长期更新
分栏 tab配置语法配置参数效果预览示例源码12345{% tabs Unique name,[index] %}<!-- tab [Tab caption] [@icon] -->Any content (support inline tags too).<!-- endtab -->{% endtabs %}
Unique name :
选项卡块标签的唯一名称,不带逗号。
将在 #id 中用作每个标签及其索 ...
Android_Dialog练习
练习一需求分析
下面是弹出的提示对话框的内容(背景为白色的提示对话框),请自行设计布局文件,要求满足 :
界面元素如图所示,图片文件请自行选择任意图片替换:
点击“立即开启”,弹出新的Activity,内容为“我是一条新消息”
点击“我再想想”,关闭对话框。
设计对话框布局
这里先在layout目录下新建一个xml文件设计弹出的对话框布局
这里button的background用了自定的drawable文件效果,要修改themes.xml文件里的parent属性才能显示自定效果
1<style name="Theme.DialogTestApplication" parent="Theme.AppCompat.DayNight.DarkActionBar">
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667<?xm ...
Android_Fragment练习
需求分析
在Activity中显示如下效果
1) 界面元素如图1所示
2) 点击”人物“,文字和图片都会相应改变,如图2所示。点击”动物“和”植物“时,效果类似。
(3) 点击“Click我,传data给Activity”按钮,首先实现按钮本身的按压效果,并修改上方TextView的内容为“Animal from fragment。如图3所示。 提示:按钮在fragment类中,TextView在Activity类中
设计Activity布局
这里要用动态方式引入fragment …….</FramLayout>
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android ...
Android_4.3AdapterView与Adapter
前言
本文是根据上海应用技术大学余艳芳老师的移动应用课程写的上课笔记。
部分素材和代码没有给出(例如drawable中的文件代码),请读者自己补全或者删除,或者可以到本人github下载完整素材和代码。
完整的项目在本人的GitHub仓库中,以下是相关链接:https://github.com/ufovsmba/TodayApplication
AdapterView与Adapter
AdapterView实现过程类似于MVC架构
AdapterView实现过程
控制层: Adapter适配器承担了控制层的角色
视图层: AdapterView将前端显示和后端数据分离
模型层: 数组、XML文件、List(ArrayList,LinkList)等形式的数据
AdapterView组件
AdapterView特征
AdapterView继承了ViewGroup,其本质上是容器
AdapterView可以包括多个“列表项”,并将“列表项”以合适的形式显示出来
AdapterView所显示的“列表项”是由Adapter提供,通过AdapterView的setAdapter ...
Android_4.2Menu和Toolbar
本章内容为AndroidStudio中Menu和Toolbar的使用
Android_4.1Fragment
本章内容为Fragment的学习
操作系统学习笔记(一)计算机系统概述
操作系统的概念,功能和目标操作系统的概念操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件。
操作系统的功能和目标补充知识:进程是应该程序的执行过程,执行前需要将该程序放到内存中,才能CPU处理。
功能和目标
作为系统资源的管理者
功能
处理机管理
储存机管理
文件管理
设备管理
目标
安全
高效
作为用户和计算机硬件之间的接口
功能
命令接口:允许用户直接使用
联机命令接口:用户说一句,操作系统做一句(交互式命令接口)
脱机命令接口:用户说一堆,操作系统做一堆(批处理命令接口)
程序接口:允许用户用过程序间接使用(系统调用/广义指令)
GUI(图形用户界面)
目标
方便用户使用
作为最接近硬件的层次
功能和目标
需要实现对硬件机器的扩展
没有任何软件支持的计算机称为裸机。在裸机上安装的操作系统可以提供资源管理功能和方便用户的服务功能,将裸机改造橙功能更强,使用更方便的机器
通常把覆盖了软件的机器称为扩充 ...
