自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

Oracle 实现拆分列数据的split()方法

保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭ -- 创建需要划分的字符串with T1 as( select 'one,two,three,four,five,six,seven,eight,nine,zero' as source_string from dual), -- 统计字符串中子串的个数,用 ',' 来划分子串T2 as(...

2011-05-02 10:43:53 910

算法 之 分治 - 快速排序

这篇文章介绍 一个非常流行并且高效的排序算法:QuickSort。该算法优于 MergeSort 的一点是它在原位上排序,即对于被排序的元素,不需要辅助的存储空间。 在介绍 QuickSort 之前,需要先介绍划分算法,它是 QuickSort 的基础。 1. Split设 A[low...high] 是一个包含 n 个数的数组,并且 x = A[low]。我们考虑重新安排...

2011-05-01 18:56:37 171

算法 之 分治 - 寻找中项和第k小元素

对于n 个已排序的数组 A[1...n],其中项是其中间元素。如果 n 是奇数,则中项是序列中第 (n+1)/2 个元素;如果 n 是偶数,则存在两个中间元素,所处的位置分别是 n/2 和 n/2+1,在这种情况下,我们将选择第 n/2 个最小元素。这样,综合两种情况,中项是第 ⌈n/2⌉ 最小元素。 寻找中项的一个直接的方法是对所有的元素排序并取出中间一个元素。但是在...

2011-05-01 14:08:30 2395

Oracle 中的正则函数

保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭ 这个是函数中将会用到的模式串的介绍: Oracle 中的正则函数一共有5个:REGEXP_COUNT -- 统计子串出现的次数REGEXP_INSTR -- 查找子串在母串中的位置REGEXP_LIKE -- 模糊查询子串REGEXP_REPLACE -- 替换REGEXP_SUBSTR...

2011-04-28 14:16:01 198

Oracle 拼接列数据的方法

保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭ 我们可以先这样创建一张需要的临时表(Role 表):select 'role_01' as role_id, 'admin' as role_category from dualunion allselect 'role_02' as role_id, 'admin' as role_category from dual...

2011-03-31 17:11:18 1910

算法 之 分治 - 合并排序-小结

之前我们看过的算法 BottomUpSort 和 MergeSort,前者是迭代的,而后者是递归的。在这里我们可以思考一下,既然能够利用算法 BottomUpSort,为什么还要借助于像 MergeSort 那样的递归算法呢?尤其是考虑到因使用栈而需要的额外空间数,以及由处理递归调用内在开销带来的额外空间。而且从实践的观点来看,似乎没有理由赞成用递归算法替代其等价的迭代算法。但是从理论...

2011-03-23 09:02:58 272

算法 之 分治 - 合并排序-自顶向下合并排序

这次讲的算法与自底向上算法(ButtomUpSort)很类似,但是实现起来比它更加简单。在 ButtomUpSort 算法中,我们已经知道了元素是如何由关联排序树的逐层隐含遍历完成排序的。在每一层中,我们有已排序的序列对,然后将它们合并而得到较大的排序序列。沿着树一层一层向上继续这个过程,直到到达根为止,这最后的序列就是已经排序好的。如果你不了解 BottomUpSort 算法的基本思...

2011-03-22 20:29:19 559

算法 之 分治 - 合并排序-自底向上合并排序

这一次我们要介绍的是一种元素比较次数较少、比较有效的 自底向上合并排序算法。假设要对这8个数字的数字排序:9, 4, 5, 2, 1, 7, 4, 6考虑下面的这个排序方法首先将输入元素分成4对(8个),合并每对为一个2元素的排序序列,然后将每两个连续的2元素的序列合并成大小为4的排序序列,最后将两个排序序列合并成途中所示的最终的排序序列。我们这里设A为需要排序的n个元...

2011-03-22 10:46:57 952 1

算法 之 分治 - 合并排序-合并两个已排序的表

假定有一个数组 A[1...n],low, middle, high 为它的三个索引,并有 1 ≤ low ≤ middle < high ≤ n,使得两个子数组 A[low...middle],A[middle+1...high] 各自按升序排列。我们要重新排列A中元素的位置,使得 A[low...high] 中的元素也按升序排列。这就是合并 A[low...middle] 和 A[m...

2011-03-20 12:27:49 158

算法 之 分治 - 二分搜索

回忆一下二分搜索,将一个给定的元素x与一个已排序数组A[low...high]的中间元素作比较,如果x<A[mid] ( mid=⌊(low + high)/2⌋ ) ,则不考虑A[mid...high],而对A[low...mid-1]重复实施相同的方法。类似地,如果x>A[mid],就对A[mid+1...high]重复实施相同的方法。这个就是今天介绍的著名的二分搜索算...

2011-03-18 16:58:13 119

算法 之 分治 - 求解最大值和最小值

顾名思义,“分治”名字本身就已经给出了一种强有力的算法设计技术,它可以用来解决各类问题。在它最简单的形式里,一个分治算法把问题实例划分成若干子实例(多数情况是分成两个),并分别递归地解决每个子实例,然后把这些子实例的解组合起来,得到原问题实例的解。 为了阐明这个方法,考虑这样一个问题:在一个整数组A[1...n]中,同时寻找最大值和最小值。为了简化问题,不妨假定n是2的整数幂。一中直接的算...

2011-03-17 20:02:33 1782

SQL 插入带引号的字段

今天突然想了下给字段插入引号的SQL该怎样写,然后就百度了一下,结果看各位的结果真是云里雾里啊 ╮(╯▽╰)╭然后就自己本机测试了一下 O(∩_∩)O,三种数据库都可以不知道我这样写有没有问题呢 ... 稍微介绍一下吧:如果要向字段插入的数据中包含一个单引号('),那么SQL语句中就要写两个单引号(''),只写一个单引号的话SQL会报错了如果要向字段插入的数据中包含一个双引...

2011-03-16 11:42:29 1996

javascript 创建div 标签

保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭ javascript 和 jQuery 两种方法:$(window).load(function() { createSuspendedLinkByJavaScript(); createSuspendedLinkByjQuery();});function createSuspendedLinkByJava...

2011-03-15 20:42:46 302

javascript 从url中获取参数

保存在这里,方便自己以后查看   (⊙_⊙)   ╮(╯▽╰)╭  // param: 需要查询的参数function getAttribute(param) { var query = window.location.search.substring(1); if (query == null || query.length < 1) return null;...

2011-03-13 19:32:52 124

javascript 操纵a标签的href属性

有时候我们会创建这样的一个a标签,它的的href属性根据页面环境来确定。比如我们得到一个url: http://www.baidu.com/s?wd=hello但是我们想根据这个url 来动态设置我们自己的一个a标签的属性为 http://www.google.com/search?q=hello这个时候我们就可以用javascript函数来取得需要的一些参数,动态进行设置了 //...

2011-03-13 19:27:55 363

算法 之 堆 - 小结

之前我们讨论的堆,都把最大键值存储在根节点中,这种类型的堆可以看作是最大堆。我们还可以创建另一种堆,把最键小值存储在根节点中,根节点以外的节点的键值,大于或等于存储在它父节点中的键值,这种类型的堆可以看作是最小堆。具体是用最大堆还是最小堆,就根据我们自身的需要来选择了。 堆的算法到这里就讲完了,下面这段代码包括了之前讲过的堆的所有算法:#include <stdio.h&...

2011-03-10 09:34:12 84

算法 之 堆 - 排序

给出数组A[1...n],我们可以将其中的元素用下面的方法以非降序有效地排序。首先将A变换成堆,并使其具有这样的性质:每个元素的键值是该元素本身,即key(A[i])=A[i],1 ≤ i ≤ n。转换成堆之后,由于A中各项的最大值存储在A[1]中,可以将A[1]和A[n]交换,使得A[n]是数组中的最大元素。这时A[1]中的元素可能小于存放在它的一个子节点中的元素,于是用过程Sift-d...

2011-03-10 09:33:22 86

算法 之 堆 - 创建堆

给出一个有n个元素的数组A[1...n],要创建一个包含这些元素的堆,可以这样进行:从空的堆开始,不断插入每一个元素,直到A完全被转移到堆中为止。因为插入第j个键值用时O(log j),因此用这种方法创建堆栈的时间复杂性是O(n log n)。 我们知道对应于堆H[1...n]的树的节点可以方便地以自顶向下、从左到右的方式从1到n编码。在这样编码之后,可以用下面的方法,把一棵n个节点的几乎...

2011-03-09 12:25:24 819

算法 之 堆 - 插入和删除

1. 插入为了把元素x插入到堆H中,先将堆大小加1,然后将x添加到H的末尾,再根据需要,把x上移,直到满足堆特性。如果n是新堆的大小,那么堆树的高度是⌊log n⌋,所以将一个元素插入大小为n的堆中所需要的时间是O(log n)。 过程  Insert输入  堆H[1...n]和元素x输出  新的堆H[1...n+1],x为其元素之一 算法描述n ← n+1 {...

2011-03-09 12:23:35 377

算法 之 堆 - Sift-up和Sift-down

1. Sift-up假定对于某个i>1,H[i]变成了键值大于它父节点键值的元素,这样就违反了堆的特性。我们需要使用Sift-up运算把新的数据项移到在二叉树中适合它的位置上。Sift-up的运算沿着从H[i]到根节点的唯一一条路径,把H[i]移到适合它的位置上。在沿着路径的每一步上,都将H[i]键值和它父节点的键值H[⌊i/2⌋]相比较。 过程  Sift-up输入  ...

2011-03-08 09:55:29 1450

算法 之 堆 - 简介

在许多算法中,需要支持下面两种元素运算的数据结构:插入元素和寻找最大值元素。支持这两种运算的数据结构称为优先队列。如果使用普通队列,那么寻找最大元素需要搜索整个队列,开销比较大;如果采用排序数组,那么插入运算就需要移动很多元素,开销也会比较大。优先队列的有效实现是使用一种称为堆的简单数据结构。 一个(二叉)堆是一个几乎完全的二叉树,它的每个节点都满足堆的特性:如果v和p(v)分别是节点...

2011-03-08 09:48:22 81

新手教程:使用MyEclipse创建Struts1.x 应用

小弟最近开始了Java的学习之路,希望能够学习一下各种框架。这两天在接触Struts,网上找了本书Struts in Action(中文版)(惭愧自己的E文水准╮(╯▽╰)╭)。书中的例子是基于Struts1.1的,于是我就用MyEclipse中比较接近的Struts1.3来调试书中的例子(小弟实在找不到Struts2.0的详细又好读的教程,只能先用这本书凑活了!)。言归正传,像我这样的新...

2011-03-04 16:58:37 341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除