Oracle如何使用localhost访问

发表于3年前(Dec 24, 2014 10:33:56 AM)  阅读 310  评论 0

分类: 数据库

标签: localhost

Oracle安装时一般是要拔网线的,默认配置的是localhost,但使用localhost时,经常会发现数据库登录不了,具体原因我也不清楚,所以一直以来我都是配置的固定ip。今天因为要演示系统,演示的地方没有网络,所以必须配localhost,网上查了下资料,发现如果配计算机名的话,Oracle也是可以用localhost登录的。

打开Oracle net manager,将sid跟listener的主机名跟主机配置成自己计算机的计算机名,启动服务后,就可以使用localhost登录Oracle了。

oracle闪回

发表于3年前(Dec 24, 2014 10:32:50 AM)  阅读 393  评论 0

分类: 数据库

标签: oracle 闪回

oracle也有回收站,如果不小心drop掉了哪张表,或误删了记录,可以通过回收站闪回。

select * from recyclebin t;

上面这条语句可以查看当前回收站里有哪些对象,主要的字段有object_name,original_name,createtime,droptime,original_name就是你删除对象之前在oracle里面的名称,根据droptime我们可以找到当时你删除的版本的object_name,然后根据object_name就可以进行闪回。

flashback table “BIN$SxyIpbUaSlGWt9j/dEZEhw==$0″ to before drop rename to gis_link;

注意object_name一定要用双引号括起来,而不是单引号

链表java实现

发表于3年前(Dec 24, 2014 10:26:19 AM)  阅读 528  评论 0

分类: Java 数据结构

标签: LinkedList LinkList 双向链表 链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。—-摘自百度百科。

只包含下一个节点的指针,这样的链表叫单向链表,如果还包含上一个链表的指针叫双向链表。在双向链表里,如果一个节点的上一个节点地址为空,则表示该节点为第一个节点,如果下一个节点的地址为空,则表示该接点为最后一个节点,如果两个都为空,表示该链表只有一个元素(数据不为空)或链表为空(数据为空)。 如果最后一个节点的下一个节点地址为第一个节点,这样的链表叫循环链表。

队列java实现

发表于3年前(Dec 24, 2014 10:24:48 AM)  阅读 510  评论 0

分类: Java 数据结构

标签: FIFO queue 先进先出 队列

队列和栈相反,是先进先出(FIFO,first in first out)的数据集合。就跟排队打饭一样,最先进入队伍的总是最先离开。

队列元素的操作一般由入列(enQueue)和出列(deQueue)组成。 按照通常理解,如果队首的人离开,队伍中所有的人将往前挪一个位置,在下面的代码里,我没有这么做,因为如果每次出列都进行一次平移,就造成了多次元素交换,影响效率,当然如果你不在乎可以进行平移。取而代之的是,用两个索引head跟tail来标记当前队首跟队尾元素的索引,避免了移位。在这里,没有实现队列的自动增长,使用索引来标记队首队尾元素,增加了自动增长的难度,其实也很简单,只是暂时觉得没有必要实现。

栈java实现

发表于3年前(Dec 24, 2014 10:23:52 AM)  阅读 592  评论 0

分类: Java 数据结构

标签: lifo stack 后进先出

栈是一种后进先出(LIFO,last in first out)的数据集合。可以把栈看成餐馆中用来放盘子的、里面安装了弹簧的栈,盘子弹出的顺序跟被压入的顺序正好相反,因为在每一时刻,只有最顶上的盘子是可以拿到的。

栈中操作元素的方法通常为两种,压入(push)与弹出(pop)。先下的代码用java数组实现了栈,加入了栈的自动增长,关于自动增长要说的是,有些算法对于自动增长的时机以及自动增长的容量有特殊研究,这里只是简单的采用当数组满后将数组长度翻倍的做法。代码中自定义的异常StackOverFlowException只是简单实现了RuntimeException中的String构造方法,这里就不再给出,读者可以自行使用RuntimeException替代。对于泛型的使用请参考java中关于泛型的用法。

基数排序RadixSort与桶排序BucketSort

发表于3年前(Dec 24, 2014 10:21:45 AM)  阅读 596  评论 0

分类: Java 算法 排序

标签: bucketsort radixsort 基数排序 桶排序

基数排序:对于十进制数字来说,将要排序的数字对齐排成一列,我们可以从低位起,假设目标数组元素不超过3位,第一次我们把这列数字按个位数排序,在这基础上第二次我们把这些数字再按十位数排序,第三次按百位数排序,三趟下来得到的数组就是已排序的数组。在对个位数排序时,我们可以采用下面的方法,用10个标志为0..9的桶,桶0放入所有个位数为0的数,桶1放入所有个位数为1的数,最后将所有桶的数从桶0开始输出,这样得到的数组就是按个位数排序的数组。然后,其余高位数类似处理。

桶排序:其实基数排序已经用到了桶排序的思想。桶排序假设输入数组符合均匀发布,假设n个元素都是均匀而独立的分布在区间[0,1)上, 然后将区间[0,1)划分为n个相同大小的子区间,这些子区间就是桶,然后对桶中的元素进行排序(一般使用插入排序),最后输出桶中的元素,得到排序数组。桶排序假设输入均匀分布,所以一般每个桶中的元素不会很多,因而运行得很快。

基数排序跟桶排序的时间复杂度都是O(n)。

计数排序CountingSort

发表于3年前(Dec 24, 2014 10:18:15 AM)  阅读 558  评论 0

分类: Java 算法 排序

标签: countingsort 计数排序

计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。

计数排序算法的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数。一旦有了这个信息,就可以将x直接存放到最终的输出序列的正确位置上。例如,如果输入序列中只有17个元素的值小于x的值,则x可以直接存放在输出序列的第18个位置上。当然,如果有多个元素具有相同的值时,我们不能将这些元素放在输出序列的同一个位置上,因此,上述方案还要作适当的修改。

计数排序的时间复杂度为O(n),当然是有条件的。计数排序不是原地排序。

快速排序QuickSort

发表于3年前(Dec 24, 2014 10:16:45 AM)  阅读 541  评论 0

分类: Java 算法 排序

标签: quicksort 分区 快速排序

快速排序(QuickSort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列—–摘自百度百科。

快速排序的核心算法是分区,如何将一个数组分成两个子数组,前面的数组所有元素都小于等于后面数组的所有元素,关键字夹在两个数组中间。实现见partition方法,这里关键字取的是数组最后一个元素,实际上取任何元素都行。

快速排序的时间复杂度为O(nlogn),是原地排序。

堆排序HeapSort

发表于3年前(Dec 24, 2014 10:11:34 AM)  阅读 594  评论 0

分类: Java 算法 排序

标签: buildmaxheap heapsort maxheapify 堆排序 最大堆

堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。

堆排序原理有点点复杂,文字我描述不清楚,画图是最有助于理解了的,想深入研究的朋友建议参考算法导论中有关堆排序的描述。

堆排序中有几个重要的过程:Max-Heapify,是用来保持最大堆性质;Build-Max-Heap是用来把一个无序数组建立成最大堆;Heap-Sort则是把一个数组利用最大堆性质进行原地排序。

堆排序的时间复杂度为O(nlog n) ,同合并排序,但相比合并排序他的优点是可以在原数组上实现排序。

冒泡排序BubbleSort

发表于3年前(Dec 24, 2014 10:08:51 AM)  阅读 3116  评论 0

分类: Java 算法 排序

标签: sort 排序 bubblesort 冒泡排序

冒泡排序也是常用的排序方法之一,他的优点在于可读性好,容易编程实现。他的原理是,对于长度为n的数组,做n-1趟比较,每一趟比较,依次比较前后两数,小的数往前放,大的数往后放,相当于气泡往上升,所以叫冒泡排序。每一趟依次找出数组中最大的数,因此,每趟可以依次少比较一个数,只需比较到n-i+1个数即可。

冒泡排序的时间复杂度为O(n2)。