游标

求最大和连续子向量问题的算法分析

最后都变了- 提交于 2020-01-18 13:08:45
1 问题描述 这是从《编程珠玑(第 2 版)》的第 8 章“算法设计技术”中看到的一个问题。问题的描述是这样的, “问题的输入是具有 n 个浮点数的向量 x,输出是输入向量的任何连续子向量中的最大和。例如,如果输入向量包含下面 10个元素:(31,-41,59,26,-53,58,97,-93,-23,84) 那么该程序的输出为x[2...6] 的总和,即 187。” 当所有的数都是正数时,问题很容易解决,此时最大的子向量就是输入向量本身。但如果输入向量中含有负数时就不好处理了。另外,为了使问题的定义更加完整,我们认为当所有的输入都是负数时,总和最大的子向量为空向量,总和为 0。 2 问题分析 2.1 最简单直接算法 看到问题,想到的最简单直接的算法就是双层嵌套循环遍历所有的连续子向量,记录下遇到过的最大和,并持续更新。该算法的伪代码为, 1 maxSum = 0; 2 for i = 0 -> n-1 3 subVecSum = 0; 4 for j = i+1 -> n-1 5 subVecSum = subVecSum + x[j]; 6 if (subVecSum > maxSum) then 7 maxSum = subVecSum; 8 endif 9 endfor 10 endfor 这是一种简单粗暴的算法,算法复杂度为 O(n2 ),效率太低了。 如何进行改进呢

数据库管理 API

心已入冬 提交于 2020-01-18 02:15:28
java.sql.DriverManager static Connection getConnection(String url, String user, String password) 建立一个到指定数据库的连接,并返回一个Connection对象 java.sql.Connection Statement createStatement() 创建一个Statement对象,用以执行不带参数的SQL查询和更新 void close() 立即关闭当前的连接,并释放由它创建的JDBC资源 PreparedStatement preparedStatement(String sql) 返回一个含预编译语句的PreparedStatement对象。字符串sql代表一个SQL语句,该语句可以包含一个或多个由?字符指明的参数占位符 Blob createBlob() Clob createClob() 创建一个空的BLOB或CLOB Statement createStatement(int type, int concurrency) PreparedStatement preparedStatement(String command, int type, int concurrency) 创建一个语句或预备语句,且该语句可以产生指定类型和并发模式的结果集

sql之T-SQL

此生再无相见时 提交于 2020-01-16 16:17:38
下面就T-SQL的几个方面来分别讲解一下。 1、变量 要动态的写sql语句,就不能没有变量。 声明变量并赋值: 1 declare @i as int;--定义一个 int 类型的 变量 (as可以省略) 2 print @i;--这注意:没有赋值之前,程序不会报错,而且输出一个 空 3 set @i=3; 4 print @i; 在sql server 2008之后就可以对变量 在声明的同时进行赋值 1 declare @a int=3; 2 print @a; 在变量的使用过程中,一定要注意nvarcahr 和nchar的区别。 1 declare @s nvarchar(20); 2 set @s='Hello'; 3 set @s=@s+' World!'; 4 print @s;--输出的是 Hello World! 5 6 declare @s2 nchar(20); 7 set @s2='Hello'; 8 set @s2=@s2+' World!'; 9 print @s2;--输出的是 Hello。 为什么使用nchar却是输出的 Hello,因为:nchar是固定长度,即使长度没有达到最大,但是其余长度用 空来代替了,所以 相当于是满的,所以在进行字符串的相加 是不会起作用的。 在查询中赋值: 1 declare @now datetime; 2 select

oracle练习-day04

心不动则不痛 提交于 2020-01-15 22:34:06
- - - - - - - - - - - - - - - - - - - - - - - - - - - Oracle day04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 01 .什么是PL / SQL ? 通俗理解:plsql: Procedure language sql 过程化语言 plsql是一组 sql 语句集合,在这个plsql中集合语句中可以处理复杂业务逻辑 (申明变量、条件分支、循环语句、异常处理) 优点:如果使用plsql语言,编写存储过程 函数,提供java代码调用,减少访问数据频率 缺点:对程序员要求比较高(高级程序员 或 专业DBA),存储过程 函数 移植不方便 - - 02 .PL / SQL 基本语法 declare - - 声明变量 (普通变量、常量、引用型变量、记录型变量) begin - - DML语句(逻辑语句) end ; - - 03 .普通变量和常量使用 - - 类似于java中 private String myname = "老王" ; declare myname varchar2( 30 ) : = '老王' ; begin myname : = '隔壁老王' ; select e.ename into myname from

Oracle Undo的学习

戏子无情 提交于 2020-01-15 16:07:12
回滚段 可以说是用来保持数据变化前映象而提供一致读和保障事务完整性的一段磁盘存储区域。当一个事务开始的时候,会首先把变化前的数据和变化后的数据先写入日志缓冲区,然后把变化前的数据写入回滚段,最后才在数据缓冲区中修改(日志缓冲区内容在满足一定的条件后可能被写入磁盘,但在事务提交的时候日志必须写入磁盘,而数据缓冲区中的数据依赖于检查点的发生和DBWR进程的活动) Rollback是一个代价昂贵的操作,如果一个系统的事务回退率过高,应该检查系统是否正常或者程序设计思路是否存在问题。查询数据库启动依赖的 事务回退率,如果发现太高,一定要引起重视。 --查询回退率的sql SELECT NAME, VALUE FROM v$sysstat WHERE NAME IN ('user commits', 'transaction rollbacks'); 关于回滚段的数据,如果是delete操作,则回滚段将回记录整个行的数据;如果是update,则只记录被修改了的字段的变化前的数据(前映像);如果是insert,则只记录插入记录的rowid。所以,假如commit,那么回滚段中简单标记该事务已经提交;假如rollback,则操作是 delete的话,把回滚段中的数据重新写回数据块,操作是update的话则把变化前的数据修改回去,操作是insert的话则根据rowid把该记录删除

SQL Server游标的使用【转】

十年热恋 提交于 2020-01-15 08:51:11
SQL Server游标的使用【转】 Posted on 2011-11-26 00:33 moss_tan_jun 阅读( 206754) 评论( 53) 编辑 收藏 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 同样的,在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量…… 从游标对数据库的读取方式来说,不难看出游标为什么占用更多的资源,打个比方: 当你从ATM取钱的时候,是一次取1000效率更高呢,还是取10次100? 既然游标这么“邪恶”,为什么还要学习游标 我个人认为存在既是合理.归结来说,学习游标原因我归纳为以下2点 1.现存系统有一些游标,我们查询必须通过游标来实现 2.作为一个备用方式,当我们穷尽了while循环,子查询,临时表,表变量,自建函数或其他方式扔来无法实现某些查询的时候,使用游标实现. T-SQL中游标的生命周期以及实现 在T-SQL中,游标的生命周期由5部分组成 1.定义一个游标 在T-SQL中,定义一个游标可以是非常简单,也可以相对复杂,取决于游标的参数

SQL With(递归 CTE 查询)

做~自己de王妃 提交于 2020-01-13 08:03:59
本文来自:http://www.cnblogs.com/smailxiaobai/archive/2012/01/16/2323291.html 指定临时命名的结果集,这些结果集称为公用表表达式 (CTE)。该表达式源自简单查询,并且在单条 SELECT、INSERT、UPDATE 或 DELETE 语句的执行范围内定义。该子句也可用在 CREATE VIEW 语句中,作为该语句的 SELECT 定义语句的一部分。公用表表达式可以包括对自身的引用。这种表达式称为递归公用表表达式。 Transact-SQL 语法约定 语法 [ WITH <common_table_expression> [ ,...n ] ] <common_table_expression>::= expression_name [ ( column_name [ ,...n ] ) ] AS ( CTE_query_definition ) 参数 expression_name 公用表表达式的有效标识符。 expression_name 必须与在同一 WITH <common_table_expression> 子句中定义的任何其他公用表表达式的名称不同,但 expression_name 可以与基表或基视图的名称相同。在查询中对 expression_name 的任何引用都会使用公用表表达式,而不使用基对象。

pymysql

微笑、不失礼 提交于 2020-01-07 22:41:27
*/ /*--> */ 目录 About pymysql Install 准备 建立连接 创建数据库 快速上手之增删改查 增 删 改 查 SQL注入 事物 存储过程 返回Python目录 返回测试目录 返回随笔首页 About pymysql 返回顶部 在Python2.x中,Python连接MySQL服务器使用mysqldb库,但是它只支持到Python2.x,在Python3.x中由pymysql模块代替。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 Install 返回顶部 pip install pymysql # 备用地址 pip install -i https://pypi.doubanio.com/simple pymysql 准备 返回顶部 在正式操作前,这里默认你有了一个良好的环境,包括MySQL服务,Python环境。 建立连接 返回顶部 import pymysql conn = pymysql.connect( host='localhost', # 连接的服务器ip user='username', # 用户名 password='password', # 密码 database='day31', # 你想连接的数据库 charset='utf8' # 指定字符编码

3.1.1 HTML5存储

主宰稳场 提交于 2020-01-06 14:41:57
一.介绍 二.HTML5本地存储 (一).Localstorage (二).API (三).存储时效 (四).indexDB (五).indexDB-索引 (六).indexDB-游标 三.游标索引结合与区别 (一).IndexDB-游标索引结合 (二).indexDB-区别 四.课程总结 (一)介绍 1. 本地存储 : (1) .web storage (2) .IndexedDB 2. 本地存储的扩展介绍。 3. 离线存储-app cache。 4. 分析存储需求 : ( 1 ). 照顾2g,3g网络的体验。 ( 2 ). 流量节省。 ( 3 ). 在离线情况下使用。 cookie做不到,cookie的局限性:存储大小限制,仅4kb。单个域名下的数量限制,50个左右。污染请求头,浪费流量。 二.HTML5本地存储 (一)Localstorage localStorage和sessionStorage 1. 本地存储和离线存储相同的使用方法: ( 1 ). setItem方法设置存储内容。localStorage.setItem('Key', 'Value'); ( 2 ). getItem方法获取存储内容。localStorage.getItem('Key');//返回value值。 ( 3 ). 使用removeItem方法删除存储内容。(一个一个删)

vim命令汇总

人走茶凉 提交于 2020-01-05 02:24:48
@三种状态: Command:任何输入都会作为编辑命令,不会出现在屏幕上,任何输入都立即引起反应。 Insert: 任何输入的数据都至于编辑寄存器,按ESC可跳回Common模式。 Escape: 以 ': '或者 '/' 为前导的指令,出现在屏幕最下面一行,任何输入都被当成特别指令。 @离开vim: :q! 放弃编辑的内容,离开vim :wq 保存内容,离开vim :x 同wq(注意—— :X 是文件加密,一定要与:x存盘退出相区别) @进入输入模式 a(append) 由游标之后加入内容。 A 由该行之末加入内容。 i( insert) 由游标之前加入内容。 I 由改行之首加入内容。 o(open) 新增一行于该行之下,供输入资料之用 。 O 新增一行于该行之上,供输入资料之用。 @删除与修改 x 删除游标所在该字元 X 删除游标所在之前一个字元 来源: https://www.cnblogs.com/Cxb168/p/5139865.html