摘要:
1.题目: 2.逆序对的定义: 对于数列的第 i 个和第 j 个元素,如果满足 i a[j],则其为一个逆序对。 一个元素可以不只是在一个逆序对中存在。如果 k j i 且 a[i] a[j] a[k],那么这里 有两个逆序对,分别是 (a[i], a[j]) 和 (a[i], a[k]), a[i 阅读全文
摘要:
1 2事件的基本运算: 概率论中的事件相当于集合,基本事件一般是只含一个元素的集合。概念和运算和实数来不是一回事自。如果问“概率论中事件”与实数集合运算是否相符,则可以是肯定的。集合的并、交、余集在概率事件运算中zhidao可以找到对应的对象及相类似的运算方法。 阅读全文
摘要:
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题 阅读全文
摘要:
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 12 阅读全文
摘要:
平衡二叉树(Balanced Binary Tree)具有以下性质: 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下: F(n)=F(n 1)+F( 阅读全文
摘要:
二叉树(Binary Tree)是n(n = 0)个节点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两颗互不相交的,分别称为根节点的左子树和右子树的二叉树组成。 二叉嘛,也就是每个节点最多有两个分支。 图示: 二叉树具有五种基本形态: 1.空二叉树 2.只有一个根节点 3.根节点 阅读全文
摘要:
1.栈的概念 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉 阅读全文
摘要:
1、队列的定义 队列,简称队,它是一种操作受限的线性表,其限制在表的一端进行插入,另一端进行删除。可进行插入的一端称为队尾(rear),可进行删除的一端称为队头(front)。向队中插入元素叫入队,新元素进入之后就称为新的队尾元素。从队中删除元素叫出队,元素出队后,其后继结点元素就称为新的队头元素。 阅读全文
摘要:
线性表的链式存储表示的特点: 是用一组任意的存储单元存储线性表的数据元素 (这组存储单元可以是连续的,也可以是不连续的)。 因此,为了表示每个数据元素 与其直接后继数据元素 之间的逻辑关系, 对数据元素 来说,除了存储其本身的信息之外, 还需存储一个指示其直接后继的信息(即直接后继的存储位置)。 由 阅读全文
摘要:
大数加法,题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 大数判断(带小数,重要的题目):题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054 大数阶层,题目链接:http://acm.jlnu 阅读全文
摘要:
在算法竞赛或者面试中我们经常遇到大数问题,例如求一个很大的阶层,大数加法等等。 住在这种情况下我们用常规解法(使用long long或long long int)肯定是不行的, 而我们自己用c/c++写一个大数的算法又过于麻烦且易于出错, 在这种情况下使用java中自带的大数类是我们最好的选择, 相 阅读全文
摘要:
java.util.ArrayList集合的数据存储结构是数组,且是多线程,元素增删慢,查找快, 由于日常使用开发大多数为查询数据,遍历数据,所以ArrayList是最常用的集合。上一节已写了。 java.util.LinkedList集合属于双向链表,查询慢,增删快,有大量操作首尾元素的方法,下面 阅读全文
摘要:
Java中List集合的常用方法 List接口是继承Collection接口,所以Collection集合中有的方法,List集合也继承过来。 ` ` 阅读全文
摘要:
StringBuffer是一个可变对象,当对他进行修改时不会像String那样重新建立一个新的对象,他只能通过构造函数来建立,StringBuffer sb = new StringBuffer(); 不能通过赋值符号对他进行赋值,对象被建立以后,在内存中会分配内存空间,并出示保存一个null. ` 阅读全文
摘要:
java中定义了String类来封装字符串, 并提供一系列的操作字符串的方法,他们都位于java.lang包下。 将字符串转换成字符数组 字符串替换和去除两端空格 字符串判断操作 字符串的截取和分割 ` ` 阅读全文
摘要:
对于进制转换,c/c++要用到辗转相除,不仅浪费时间,还造成代码量繁多,而任意之间的进制转换还需要以十进制为跳板, 先将其他进制的数字转换为十进制,再将十进制转换为其他进制,而java中自带进制转换的函数与方法,可以直接导包调用,非常方便,下面就是十 进制(非大数,是普通整数)转换其他进制的代码,注 阅读全文
摘要:
直接插入排序:通过构建有序序列,对于未排序数据,选出第一个元素,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序因而在从后向前扫描过程中, 需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 我们可以吧一个序列分为有序区段和无序区段,如图: 代码: ` ` 阅读全文
摘要:
冒泡排序: 越大的元素会经由交换慢慢"浮"到数列的顶端,故名"冒泡排序",每趟都会将当前序列的最大元素放在后面,且冒泡排序分从大到小和从小到大两种排序方式。它们的唯一区别就是两个数交换的条件不同,从大到小排序是前面的数比后面的小的时候交换, 而从小到大排序是前面的数比后面的数大的时候交换。下面是冒泡 阅读全文
摘要:
快速排序,说白了就是给基准数据找其正确索引位置的过程. 如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾. 首先从后半部分开始,如果扫描到的值大于基准数据就让h 阅读全文
摘要:
1 1随机事件的基本概念 随机事件是在随机试验中,可能出现也可能不出现,而在大量重复试验中具有某种规律性的事件叫做随机事件(简称事件)。随机事件通常用大写英文字母A、B、C等表示。随机试验中的每一个可能出现的试验结果称为这个试验的一个样本点,记作ωi。全体样本点组成的集合称为这个试验的样本空间,记作 阅读全文