总结:
一、数据结构(Data Structure) 是数据的组织结构,用来组织、存储数据。算法(Algorithm) 就是解决问题的方法或者过程。
二、数据结构分为逻辑结构和物理结构。逻辑结构分为集合结构、线性结构、树形结构、图形结构;物理结构分为顺序存储结构、链式存储结构。
三、算法是一系列运算步骤。算法有5个基本特性,输入、输出、有穷性、确定性、可行性;算法最求5个目标,正确性、可读性、健壮性、运行时间少、内存空间小。
四、「数组」 是实现线性表的顺序结构存储的基础;「链表」 是实现线性表的链式存储结构的基础; 「栈」是一种后进先出的线性表;「队列」是一种先进先出的线性表;「哈希表」是根据关键码值直接进行访问的数据结构;「字符串」是由零个或多个字符组成的有限序列;「树」是由节点与节点之间的关系组成的有限集合;「图」是由顶点的非空有限集合与边的集合构成的结构。
五、「枚举算法」也称为穷举算法,是按照问题本身的性质一一列举出该问题所有可能的解;「递归」指的是一种通过重复将原问题分解为同类的子问题而解决的方法;「分治」就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并;「回溯」是一种选优搜索方法,按选优条件进行深度优先搜索,以达到目标;「贪心」是一种在每次决策时采用当前状态下最优或最好的策略,从而希望导致结果是最好或最优的算法;「位运算」是针对二进制的运算,对每一个位进行布尔运算操作;「动态规划」与分治法相似,都是通过组合子问题的解来求解原问题答案,将问题划分为互不相交的子问题,递归的求解子问题,最后合并子问题的答案。
数据结构分为逻辑结构和物理结构。逻辑结构分为集合结构、线性结构、树形结构、图形结构;
物理结构分为顺序存储结构、链式存储结构。
「数组」 是实现线性表的顺序结构存储的基础。
「链表」 是实现线性表的链式存储结构的基础。
「栈」是一种后进先出的线性表。
「队列」是一种先进先出的线性表。
「哈希表」是根据关键码值直接进行访问的数据结构。
「字符串」是由零个或多个字符组成的有限序列。
「树」是由节点与节点之间的关系组成的有限集合。
「图」是由顶点的非空有限集合与边的集合构成的结构。
算法是一系列运算步骤。算法有5个基本特性,输入、输出、有穷性、确定性、可行性;算法最求5个目标,正确性、可读性、健壮性、运行时间少、内存空间小。
「枚举算法」也称为穷举算法,是按照问题本身的性质一一列举出该问题所有可能的解。
「递归」指的是一种通过重复将原问题分解为同类的子问题而解决的方法。
「分治」就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
「回溯」是一种选优搜索方法,按选优条件进行深度优先搜索,以达到目标。
「贪心」是一种在每次决策时采用当前状态下最优或最好的策略,从而希望导致结果是最好或最优的算法。
「位运算」是针对二进制的运算,对每一个位进行布尔运算操作。
「动态规划」与分治法相似,都是通过组合子问题的解来求解原问题答案,将问题划分为互不相交的子问题,递归的求解子问题,最后合并子问题的答案。
这里你将了解到以下内容:Android屏幕相关知识Android绘图技巧Android图像处理技巧SurfaceView的使用1、屏幕尺寸信息1.屏幕参数一块屏幕通常具备以下的几个参数屏幕大小:指屏幕对角线的长度,通常用寸来表示,例如4.7寸,5.5寸分辨率:分辨率是指实际屏幕的像素点个数,例如720X1280就是指屏幕的分辨率,宽有720个像素点,高有1280个像素点PPI每英寸像素又称为DPI...
Python apply函数的用法发布于 2014-08-07 21:02:24 | 674 次阅读 | 评论: 0 | 来源: 网友投递Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各...
经常有读者在公众号上问 JavaWeb 乱码的问题,昨天又有一个小伙伴问及此事,其实这个问题很简单,但是想要说清楚却并不容易,因为每个人乱码的原因都不一样,给每位小伙伴都把乱码的原因讲一遍也挺费时间的,因此,松哥今天决定写一篇文章,和大伙好好捋捋 JavaWeb 中的乱码问题。对于一些老司机而言,其实并不太容易遇到乱码问题,但是对于一些新手来说,乱码几乎是家常便饭,而且每当乱码时,网上搜了一大堆...
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace test01强制传唤{ /// /// 让用户输入语文和数学的成绩,并计算出总成绩,并打印在屏幕上 /// class Program
BZOJ2683传送门 BZOJ1176几乎一样啊 戳这里–>BZOJ1176然后这个题 应 该? 要开long long 吧。 (日常打错变量名QAQ。。)【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <cmath>#de
在Linux下写C/C++程序的程序员,时常与Core Dump相见。在内存越界访问,收到不能处理的信号,除零等错误出现时,我们精心或不精心写就的程序就直接一命呜呼了,Core Dump是Linux仁慈地留下的程序的尸体,帮助程序员们解决了一个又一个问题。有时配置不给力,Linux直接毁尸灭迹,没有了Core文件;又有时,刚好磁盘空间不足,Core文件写不下了。没有Core文件的时候,如何知道程序...
可以做到类似于某度网盘的样式吗?文件夹的命名, 可以用单数, 也可以用复数, 在同一个项目中, 只要统一就好了. 毕竟项目开发不同于英语写作. 建议使用缩写, 不管是不是缩写都用单数, 这样简洁,容易一致.关于模板中的 常量替换?配置文件名, 函数名文件等,都是严格大小写的, 所以这里创建了一个 Common/Conf/Config.php (里面的config写成了Config)文件,里面...
mysql数据存储格式---避免行溢出InnoDB是将数据存在磁盘上的存储引擎。查询需要将磁盘数据读到内存来处理,修改删除需要将内存数据写入磁盘。磁盘IO是非常慢的,所以,以页(16KB)作为内存和磁盘交互的基本单位。行格式 (row_format)insert一条数据,该数据就包含在页中,每条数据存储有一定的格式要求,通过ROW_FORMAT来指定。如:CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称;row_format有四种格式:Compact、.
可能因为个人习惯问题,我还是比较喜欢linux 6.x版本中的网卡名的显示格式(eth0),不是很喜欢linux 7.x版本中的显示格式(eno16777736),下面就教大家怎么修改默认网卡名称。方法一:可在装系统时就修改,在选择菜单界面,按下tab键,输入“net.ifnames=0biosdevname=0 ”,回车即可!方法二:可以通过修改配置文件来修改默认网卡...
cv2.imread()用于读取图片文件,读取图片后已多维数组的形式保存图片信息。cv2.imshow(‘显示窗口名称’,图像数组)cv2.waitKey(delay),delay参数表示延迟多少毫秒。import cv2img = cv2.imread(“1.jpg”)cv2.imshow(‘img’,img)cv2.waitKey(0)...
题目地址:Sort ColorsGiven an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, w...
长宽比边界矩形的宽高比x,y,w,h = cv2.boundingRect(cnt)aspect_ratio = float(w)/hExtent轮廓面积与边界矩形面积的比area = cv2.contourArea(cnt)x,y,w,h = cv2.boundingRect(cnt)rect_area = w*hextent = float(area)/rect_a...