
学习笔记
文章平均质量分 70
notAlmost
这个作者很懒,什么都没留下…
展开
-
java 多线程(multithreading)(一)
java中实现多线程有两种方式:1.继承Thread类,重写其run方法。2.实现Runnable接口,重写run方法,然后和一个线程绑定。package multithread;public class A extends Thread { public void run(){ while(true) System.out.println("A"); }}原创 2012-05-05 21:54:38 · 778 阅读 · 0 评论 -
堆排序(heap sort)
堆排序,也是一种O(NlogN)的算法。算法简介首先介绍下堆,什么是堆?1.是一个完全(complete)二叉树;2,对于每一个子树而言,两个子节点的值都=父节点(最小堆)。满足上述两个条件的是树结构就称作是最大堆(最小堆)。堆算法有一下几个操作:buildMaxHeap:构造一个最大堆。maxHeap:确保数据还是一个最大堆。。。。所以,算法简单的说就原创 2012-05-05 21:03:31 · 454 阅读 · 0 评论 -
插入排序(insertion sort)
插入排序是最简单的排序算法之一,其算法复杂度为O(n^2),最好的情况是O(n)。算法简介其实我们在打扑克牌时,就已经用到排序算法了。我们左手拿着的是已经排序号的扑克牌,右手从牌堆里抽取一张未排序的扑克,和左右的扑克从右向左意义比较知道找到这张牌的位置,将其插入到左手的牌中。算法很简单,有几点需要注意的:1,为什么是从右向左比较?当要排序的数据是以数组(array)形式原创 2012-05-04 16:04:15 · 462 阅读 · 0 评论 -
冒泡排序(bubble sort)
冒泡排序也是简单的排序算法之一,算法复杂度为O(n^2),最优情况也是O(n^2)。突然发现自己以前做错了一道题。。。csdn好像出bug了,不能显示我的全部内容。为了能显示全部内容,我只能一句话一个enter了。算法简介冒泡,bubbling。顾名思义就是大的气泡升的高?感觉很难理解。我觉得冒泡排序还不如叫做沉淀排序。当我们的试管中有n中不同密度,且互不相容的液体时。原创 2012-05-04 16:49:40 · 451 阅读 · 0 评论 -
选择排序(selection sort)
选择排序也是最基本的排序算法之一,其算法复杂度为O(n^2),与待排序数组的内部结构没有关系。算法简介选择排序,顾名思义就是通过选择来排序。从一堆数中选出最小的放在第一位,在剩下的数中在选择最小的排在第二位。。。选择,就是一个比较的过程,从一堆数据中选择就是要在这个数据堆中一个一个进行比较。算法外层循环执行n次,每次一定进行i次比较操作,所以算法复杂度为n^2。非常直观的算法。原创 2012-05-04 18:48:24 · 571 阅读 · 0 评论 -
快速排序(quick sort)
快速排序,通常排序算法中的最佳选择,其期望时间复杂度为O(NlogN),最坏情况为O(N^2)。而且快速排序能进行就地排序,不需要像merge sort样,使用临时数组。算法简介快速排序和归并排序(merge sort)类似,都是采用分治法(divide and conquer)。与归并排序不同的是,快速排序不是讲数据平分为两半,而是将数据分为比参参考值小的一组合比参考值大的一组。标准原创 2012-05-04 22:05:55 · 830 阅读 · 0 评论 -
散列(hash)
散列是一种无需查找、只用元素的查找键确定元素位置索引的方法。数组本身是一种散列表(hash table)。冲突处理机制:1.使用散列表中另一个位置。2.修改散列表的结构使得每个数组位置可以表示多个值。开放地址(open addressing)1.线性探测开放地址。线性,直线KX,即遇到冲突后的增量为i。2.二次探测开放地址。二次,k*x^2,即遇到冲突后的增量为原创 2012-05-05 16:26:55 · 369 阅读 · 0 评论 -
java 中的泛型 generic(未完成)
泛型(generic)为什么要引进泛型?设想这样一种情况,你想设计一个容器类(container)来处理数据,比如你想设计一个通用的List类。为了通用,你可以回想到使用面向对象语言的多态这个特性。以add方法为例,你将有两种可能的实现方法:1,使用继承来实现多态。在定义函数是,形参是一个父类。那么当你以后使用这个方法时,其所有的子类都可以被传递进来。如:add(Super a);原创 2012-05-05 15:07:25 · 469 阅读 · 0 评论 -
希尔排序(shell sort)
希尔排序,插入排序的一种变体。算法复杂度:最好情况:O(n);平均:O(n^1.5);最坏:O(n^1.5或n^2)。算法简介回顾插入排序,元素朝着其正确位置一次一个位置的交换swap过去的(插入排序是从右向左比较哦),一个元素离其正确位置越远,其要移动的次数就越多,开销自然也就越大了。一个数组越接近有序,交换操作就越少,算法也就执行得越快。理想情况,当一个数组已经排序好了,那么插入算原创 2012-05-04 19:58:45 · 4682 阅读 · 0 评论 -
归并排序(merge sort)
归并排序,算法复杂度为O(nlogn),属于快速排序范畴。算法简介归并算法的思想是divide and conquer,分治法。将一个大的问题分解为若干的小问题,将小问题各个击破和,在对小问题进行合并。divide and conquer在计算机世界里是一种很常见的方法,大到系统设计小到一个算法的设计都可能用到它。归并算法是这样的:divide:我们把待排序的算法分成两个子数组,再原创 2012-05-04 21:00:51 · 597 阅读 · 0 评论 -
java socket编程(一)
感觉socket编程都差不都,服务器端绑定一个端口,然后accept监听。client申请一个socket向服务器端建立连接。下面的代码是一个十分简单的echoserver代码package network;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.原创 2012-05-05 22:55:13 · 410 阅读 · 0 评论