- 浏览: 124653 次
- 性别:
- 来自: 北京
最新评论
-
flforever1213:
裴小星 写道不错。我想分治法在并行计算中应该能够发挥很大的作用 ...
算法 之 分治 - 求解最大值和最小值 -
裴小星:
不错。我想分治法在并行计算中应该能够发挥很大的作用。
算法 之 分治 - 求解最大值和最小值 -
flforever1213:
onewind 写道void heapSort(int* he ...
算法 之 堆 - 排序 -
onewind:
void heapSort(int* heap)中缺少了建堆的 ...
算法 之 堆 - 排序 -
flforever1213:
onewind 写道如何理解,用文字描述下呃,我更新了下文章, ...
SQL 插入带引号的字段
文章列表
保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭
-- 创建需要划分的字符串
with T1 as(
select 'one,two,three,four,five,six,seven,eight,nine,zero' as source_string
from dual),
-- 统计字符串中子串的个数,用 ',' 来划分子串
T2 as(
select regexp_count(source_string, '[^,]+') as source_substring_count
from T1),
-- 根据子 ...
这篇文章介绍 一个非常流行并且高效的排序算法:QuickSort。
该算法优于 MergeSort 的一点是它在原位上排序,即对于被排序的元素,不需要辅助的存储空间。
在介绍 QuickSort 之前,需要先介绍划分算法,它是 QuickSort 的基础。
...
对于n 个已排序的数组 A[1...n],其中项是其中间元素。
如果 n 是奇数,则中项是序列中第 (n+1)/2 个元素;
如果 n 是偶数,则存在两个中间元素,所处的位置分别是 n/2 和 n/2+1,在这种情况下,我们将选择第 n/2 个最小元素。
这样,综合两种情况,中项是第 ⌈n/2⌉ 最小元素。
寻找中项的一个直接的方法是对所有的元素排序并取出中间一个元素。
但是在一个具有 n 个元素的集合中,中项或通常意义上的第 k 小元素,能够在最优线性时间内找到,这个问题也称为选择问题。
其基本思想如下:假设递归算法中,在每个递归调用的划分步骤后,我们丢弃元素的一个固定部 ...
保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭
这个是函数中将会用到的模式串的介绍:
Oracle 中的正则函数一共有5个:
REGEXP_COUNT -- 统计子串出现的次数
REGEXP_INSTR -- 查找子串在母串中的位置
REGEXP_LIKE -- 模糊查询子串
REGEXP_REPLACE -- 替换
REGEXP_SUBSTR -- 截取
以下是官方关于这5个函数可能会用到的参数的介绍:
source_char is a character express
保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭
我们可以先这样创建一张需要的临时表(Role 表):
select 'role_01' as role_id, 'admin' as role_category from dual
union all
select 'role_02' as role_id, 'admin' as role_category from dual
union all
select 'role_03' as role_id, 'normal' as role_category from dual
union all
select 'rol ...
之前我们看过的算法 BottomUpSort 和 MergeSort,前者是迭代的,而后者是递归的。
在这里我们可以思考一下,既然能够利用算法 BottomUpSort,为什么还要借助于像 MergeSort 那样的递归算法呢?尤其是考虑到因使用栈而需要的额外空间数,以及由处理递归调用内在开销带来的额外空间。
而且从实践的观点来看,似乎没有理由赞成用递归算法替代其等价的迭代算法。
但是从理论的观点来看,递归算法具有对问题易于叙述、领会和分析等优点。为了理解这一点,我们可以对算法 MergeSort 和 BottomUpSort 的代码作比较,很明显后者需要花更多的时间调试和理解代码的含义。 ...
这次讲的算法与自底向上算法(ButtomUpSort)很类似,但是实现起来比它更加简单。
在 ButtomUpSort 算法中,我们已经知道了元素是如何由关联排序树的逐层隐含遍历完成排序的。在每一层中,我们有已排序的序列对,然后将它们合并而得到较大的排序序列。沿着树一层一层向上继续这个过程,直到到达根为止,这最后的序列就是已经排序好的。
如果你不了解 BottomUpSort 算法的基本思想,可以参考:算法 之 分治 - 合并排序-自底向上合并排序。
现在,让我们从反向来考虑,也就是 自顶向下 取代 自底向上。一开始有输入数组 A = { 9, 4, 5, 2, 1, 7, 4, ...
这一次我们要介绍的是一种元素比较次数较少、比较有效的 自底向上合并排序算法。
假设要对这8个数字的数字排序:9, 4, 5, 2, 1, 7, 4, 6
考虑下面的这个排序方法
首先将输入元素分成4对(8个),合并每对为一个2元素的排序序列,然后将每两个连续的2元素的序列合并成大小为4的排序序列,最后将两个排序序列合并成途中所示的最终的排序序列。
我们这里设A为需要排序的n个元素的数组,首先合并⌊n/2⌋个连续元素对,生成大小为2的⌊n/2⌋排序序列,如果剩余一个元素,就让它进入下一轮迭代。
然后合并
假定有一个数组 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[middle+1...high] 的过程。
举个例子,就是我们有个数组 A = { 0, 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 }; 这里 low=0, middle=5, ...
回忆一下二分搜索,将一个给定的元素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]重复实施相同的方法。
这个就是今天介绍的著名的二分搜索算法。
过程 BinarySearch
输入 按非降序排列的n个元素的数组A[1...n]和元素x
输出 如果x=A[j],则输出j;否则输出-1
算法描述 binarysea ...
顾名思义,“分治”名字本身就已经给出了一种强有力的算法设计技术,它可以用来解决各类问题。在它最简单的形式里,一个分治算法把问题实例划分成若干子实例(多数情况是分成两个),并分别递归地解决每个子实例,然后把这些子实例的解组合起来,得到原问题实例的解。
为了阐明这个方法,考虑这样一个问题:在一个整数组A[1...n]中,同时寻找最大值和最小值。为了简化问题,不妨假定n是2的整数幂。一中直接的算法如下面所示,它返回一个数对(x,y),其中x是最小值,y是最大值:
x ← A[1]; y ← A[1]
for i ← 2 to n
if A[i] < x then x ← A ...
今天突然想了下给字段插入引号的SQL该怎样写,然后就百度了一下,结果看各位的结果真是云里雾里啊 ╮(╯▽╰)╭
然后就自己本机测试了一下 O(∩_∩)O,三种数据库都可以
不知道我这样写有没有问题呢 ...
稍微介绍一下吧:
如果要向字段插入的数据中包含一个单引号('),那么SQL语句中就要写两个单引号(''),只写一个单引号的话SQL会报错了
如果要向字段插入的数据中包含一个双引号("),那么SQL语句中只用写一个双引号就可以了,写两个双引号也没有问题,只是会插入两个双引号而已
比如,我们要向表 test 的列 test_column 中插入一条记录为 [-- ...
保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭
javascript 和 jQuery 两种方法:
$(window).load(function() {
createSuspendedLinkByJavaScript();
createSuspendedLinkByjQuery();
});
function createSuspendedLinkByJavaScript() {
var jsDiv = document.createElement("div");
jsDiv.setAttribute("id&qu ...
保存在这里,方便自己以后查看 (⊙_⊙) ╮(╯▽╰)╭
// param: 需要查询的参数
function getAttribute(param) {
var query = window.location.search.substring(1);
if (query == null || query.length < 1)
return null;
var pairs = query.split("&");
for (var i = 0; i < pairs.length; i++) {
var i ...
有时候我们会创建这样的一个a标签,它的的href属性根据页面环境来确定。
比如我们得到一个url: http://www.baidu.com/s?wd=hello
但是我们想根据这个url 来动态设置我们自己的一个a标签的属性为 http://www.google.com/search?q=hello
这个时候我们就可以用javascript函数来取得需要的一些参数,动态进行设置了
// selfObject: 需要设置href属性的a标签
function linkToUrl(selfObject) {
var url = "http://www.google.com ...