Zhang's Wikipedia

玩就玩大的

np.unique 的实现

1. 简单实现 import numpy as np def unique(ar): perm = ar.argsort() aux = ar[perm] flag = np.concatenate(([True], aux[1:] != aux[:-1])) ...

2018-01-20 21:02:06

阅读数:434

评论数:0

随机化算法(二)

随机化算法1. 随机化快排将数组元素划分为 3 个子数组: A:包含比枢轴元素小的元素; B:包含与枢轴元素相等的元素; C:包含比枢轴元素大的元素; 定理1 设数组含 n 个不同元素,随机快速排序算法的期望比较次数:T(n)≤2nlnn T(n)\leq 2n\ln n 也即 T(n)=O(nl...

2016-11-08 00:57:27

阅读数:414

评论数:0

同余定理在算法求解中的应用

1. 同余定理

2016-10-19 18:08:16

阅读数:767

评论数:0

元素之和最接近 0 的区间(部分和)

也即有以正数和负数组成的数组 A[] 时,求数组中区间之和最接近 0 的区间。 A[i]:-14, 7, 2, 3, -8, 4, -6, 8, 9, 11(i=0~9) A[] 中并没有区间和等于 0 的区间,但有与 0 最接近的区间 A[2] ~ A[5],其区间和为 1。找出这种区间的一种方...

2016-10-18 23:26:13

阅读数:428

评论数:0

移位运算与除法、取模运算

求一个数二进制形式 1 出现的次数:int bitCount(int n);

2016-10-18 15:53:28

阅读数:1393

评论数:0

数据结构的时间复杂度与空间复杂度、及相关证明

有向图无向图的时空复杂度

2016-10-17 18:21:49

阅读数:733

评论数:0

动态规划的关键 —— 子问题 & 公式化

将问题的规模从 n ⇒ n-1(n/2,或者其他更小的规模) 就将原问题转化为了其子问题; 公式化:公式化的关键在于对问题进行数学抽象,然后转换为数学语言。

2016-10-16 21:30:57

阅读数:795

评论数:0

位运算 —— 一个数二进制形式尾端为 0 的个数

所谓一个数二进制形式尾端为 0 的个数,比如对于 40 而言,其二进制形式为 101000,则其尾端为 0 的个数为 3,或者也可简单地返回 2^3 = 8;Java 语言的 Integer 类其实本身就提供了该接口,Integer.numberOfTrailingZeros(n);

2016-10-16 13:03:27

阅读数:467

评论数:0

伪随机数的生成算法

1. 线性同余发生器

2016-10-12 15:37:42

阅读数:822

评论数:0

随机化算法

随机化算法(randomized algorithm) 随机化算法(randomized algorithm)的运行时间不只依赖于特定的输入,而且依赖于所发生的随机数。对于快排而言,使用随机枢纽元(pivot),将获得 O(NlogN)O(N\log N) 的期望时间。

2016-10-12 12:54:58

阅读数:610

评论数:0

求 1~n 之间素数的个数

1. 筛选法 筛选掉偶数,然后比如对于 3,而言,筛选掉其整数倍数;

2016-10-06 19:18:31

阅读数:2917

评论数:0

N 个互异数的数组的平均逆序数

N 个互异数的数组的平均逆序数为 N(N−1)/4N(N-1)/4 1. 简单证明对于任意的数的表 LL(5,8,9,6,4),以及其反序表 LrL_r(4,6,9,8,5),它们各自的逆序数分别为:6 ((5, 4), (8, 6), (8, 4), (9, 6), (9, 4), (6, 4)...

2016-10-04 10:05:00

阅读数:961

评论数:2

循环不变式(loop invariant)

循环不变式是一种条件式(必须满足的条件,对循环而言是保持不变的,无论循环执行了多少次),循环语句没执行一次,就要求中间的结果必须符合不变式的要求。 (1)进入循环语句时,不变式必须成立; (2)循环语句的循环体不能破坏不变式。也就是说,循环体开始循环时不变式成立,结束时也必须成立; (3)如果循环...

2016-09-27 18:25:11

阅读数:3717

评论数:0

插入排序(insertion sort)

循环不变式

2016-09-26 20:13:05

阅读数:374

评论数:0

辨异 —— 算法

swap (&data[i], &data[j]) ;注意这里交换的是 i,j 位置上元素的值;交换的不是 i, j 两个下标;

2016-09-22 11:05:07

阅读数:237

评论数:0

CSU1323: ZZY and his little friends

Descriptionzzy养了一只小怪兽和N只凹凸曼,单挑的话每只凹凸曼都不是小怪兽的对手,所以必须由两只凹凸曼合作来和小怪兽战斗。凹凸曼A和凹凸曼B合作的战斗力为他们战斗力的异或值。现在由zzy从N只凹凸曼中选出两只来和小怪兽战斗。请问zzy能否选出两只凹凸曼使他们能够战胜小怪兽(他们的战斗力...

2016-09-22 09:29:14

阅读数:332

评论数:0

使用异或解题 —— 序列中仅出现一次的两个数

异或算法在算法求解中的妙用 如果一个序列除了某个数出现一次(奇数次)外,其他数均出现两次(偶数次),最终全部异或的结果会是这个出现一次(奇数次)的数; 如果一个序列所有的数均出现两次(偶数次),最终全部异或的结果会是 0; 如果一个序列除了某 2 个数出现一次(奇数次)外,其他数均出现两次(偶数次...

2016-09-22 08:16:28

阅读数:413

评论数:0

异或算法在算法求解中的妙用

最高级的算法依赖于数学理论。 1. 异或基本性质 a ⊕ a = 0;a ⊕ 0 = a a ⊕ 全1 = !a a ⊕ b = b ⊕ a a ⊕ b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c a ⊕ b ⊕ a = b ⇐ b ⊕ (a ⊕ a) = b ⊕ 0 = b ...

2016-09-21 22:22:41

阅读数:421

评论数:0

算法问题的求解 —— 变量的引入

是否已被访问:布尔型,visited[] 数组bool visited[100]; // 默认被初始化为 false 1. 冒泡排序:布尔型 sorted 变量用于标识是否数组已全部排序

2016-09-20 22:43:20

阅读数:439

评论数:0

递推公式与递归退出的条件

1. 二叉搜索树查找

2016-09-19 18:36:43

阅读数:482

评论数:0

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