<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[notAlmost的专栏]]></title><description><![CDATA[学习中的一些笔记，受众是自己，当然如果我记录得有错的地方，欢迎您的指正。]]></description><link>https://blog.youkuaiyun.com/notAlmost</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; notAlmost]]></copyright><item><title><![CDATA[本博客转到sina博客去了]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7539879</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7539879</guid><author>notAlmost</author><pubDate>Sun, 06 May 2012 17:15:18 +0800</pubDate><description><![CDATA[新浪博客地址http://blog.sina.com.cn/xiaowei1235]]></description><category></category></item><item><title><![CDATA[java socket编程（一）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7538497</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7538497</guid><author>notAlmost</author><pubDate>Sat, 05 May 2012 22:55:13 +0800</pubDate><description><![CDATA[感觉socket编程都差不都，服务器端绑定一个端口，然后accept监听。client申请一个socket向服务器端建立连接。


下面的代码是一个十分简单的echoserver


代码
package network;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.]]></description><category></category></item><item><title><![CDATA[java 多线程（multithreading）（一）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7538374</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7538374</guid><author>notAlmost</author><pubDate>Sat, 05 May 2012 21:54:38 +0800</pubDate><description><![CDATA[java中实现多线程有两种方式：
1.继承Thread类，重写其run方法。
2.实现Runnable接口，重写run方法，然后和一个线程绑定。


package multithread;

public class A extends Thread {
	public void run(){
		while(true)
			System.out.println("A");
	}
}]]></description><category></category></item><item><title><![CDATA[堆排序（heap sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7538164</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7538164</guid><author>notAlmost</author><pubDate>Sat, 05 May 2012 21:03:31 +0800</pubDate><description><![CDATA[堆排序，也是一种O（NlogN）的算法。


算法简介
首先介绍下堆，什么是堆？
1.是一个完全（complete）二叉树；2，对于每一个子树而言，两个子节点的值都=父节点（最小堆）。
满足上述两个条件的是树结构就称作是最大堆（最小堆）。
堆算法有一下几个操作：
buildMaxHeap：构造一个最大堆。
maxHeap：确保数据还是一个最大堆。
。。。
所以，算法简单的说就]]></description><category></category></item><item><title><![CDATA[散列（hash）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7537716</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7537716</guid><author>notAlmost</author><pubDate>Sat, 05 May 2012 16:26:55 +0800</pubDate><description><![CDATA[散列是一种无需查找、只用元素的查找键确定元素位置索引的方法。数组本身是一种散列表（hash table）。

冲突处理机制：
1.使用散列表中另一个位置。
2.修改散列表的结构使得每个数组位置可以表示多个值。


开放地址（open addressing）
1.线性探测开放地址。线性，直线KX，即遇到冲突后的增量为i。
2.二次探测开放地址。二次，k*x^2，即遇到冲突后的增量为]]></description><category></category></item><item><title><![CDATA[java 中的泛型 generic（未完成）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7537438</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7537438</guid><author>notAlmost</author><pubDate>Sat, 05 May 2012 15:07:25 +0800</pubDate><description><![CDATA[泛型（generic）
为什么要引进泛型？设想这样一种情况，你想设计一个容器类（container）来处理数据，比如你想设计一个通用的List类。为了通用，你可以回想到使用面向对象语言的多态这个特性。以add方法为例，你将有两种可能的实现方法：
1，使用继承来实现多态。在定义函数是，形参是一个父类。那么当你以后使用这个方法时，其所有的子类都可以被传递进来。如：
add（Super a）;]]></description><category></category></item><item><title><![CDATA[快速排序（quick sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7536166</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7536166</guid><author>notAlmost</author><pubDate>Fri, 04 May 2012 22:05:55 +0800</pubDate><description><![CDATA[快速排序，通常排序算法中的最佳选择，其期望时间复杂度为O(NlogN)，最坏情况为O(N^2)。而且快速排序能进行就地排序，不需要像merge sort样，使用临时数组。
算法简介
快速排序和归并排序（merge sort）类似，都是采用分治法（divide and conquer）。与归并排序不同的是，快速排序不是讲数据平分为两半，而是将数据分为比参参考值小的一组合比参考值大的一组。
标准]]></description><category></category></item><item><title><![CDATA[归并排序（merge sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7536026</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7536026</guid><author>notAlmost</author><pubDate>Fri, 04 May 2012 21:00:51 +0800</pubDate><description><![CDATA[归并排序，算法复杂度为O(nlogn)，属于快速排序范畴。
算法简介
归并算法的思想是divide and conquer，分治法。将一个大的问题分解为若干的小问题，将小问题各个击破和，在对小问题进行合并。divide and conquer在计算机世界里是一种很常见的方法，大到系统设计小到一个算法的设计都可能用到它。
归并算法是这样的:
divide:我们把待排序的算法分成两个子数组，再]]></description><category></category></item><item><title><![CDATA[希尔排序（shell sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7535911</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7535911</guid><author>notAlmost</author><pubDate>Fri, 04 May 2012 19:58:45 +0800</pubDate><description><![CDATA[希尔排序，插入排序的一种变体。算法复杂度：
最好情况：O(n)；平均：O(n^1.5)；最坏：O(n^1.5或n^2)。
算法简介
回顾插入排序，元素朝着其正确位置一次一个位置的交换swap过去的（插入排序是从右向左比较哦），一个元素离其正确位置越远，其要移动的次数就越多，开销自然也就越大了。一个数组越接近有序，交换操作就越少，算法也就执行得越快。理想情况，当一个数组已经排序好了，那么插入算]]></description><category></category></item><item><title><![CDATA[选择排序（selection sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7535863</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7535863</guid><author>notAlmost</author><pubDate>Fri, 04 May 2012 18:48:24 +0800</pubDate><description><![CDATA[选择排序也是最基本的排序算法之一，其算法复杂度为O(n^2)，与待排序数组的内部结构没有关系。


算法简介
选择排序，顾名思义就是通过选择来排序。从一堆数中选出最小的放在第一位，在剩下的数中在选择最小的排在第二位。。。选择，就是一个比较的过程，从一堆数据中选择就是要在这个数据堆中一个一个进行比较。算法外层循环执行n次，每次一定进行i次比较操作，所以算法复杂度为n^2。非常直观的算法。]]></description><category></category></item><item><title><![CDATA[冒泡排序（bubble sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7535523</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7535523</guid><author>notAlmost</author><pubDate>Fri, 04 May 2012 16:49:40 +0800</pubDate><description><![CDATA[冒泡排序也是简单的排序算法之一，算法复杂度为O（n^2）,最优情况也是O(n^2)。突然发现自己以前做错了一道题。。。


csdn好像出bug了，不能显示我的全部内容。为了能显示全部内容，我只能一句话一个enter了。
算法简介
冒泡，bubbling。顾名思义就是大的气泡升的高？感觉很难理解。
我觉得冒泡排序还不如叫做沉淀排序。
当我们的试管中有n中不同密度，且互不相容的液体时。]]></description><category></category></item><item><title><![CDATA[插入排序（insertion sort）]]></title><link>https://blog.youkuaiyun.com/notAlmost/article/details/7535079</link><guid>https://blog.youkuaiyun.com/notAlmost/article/details/7535079</guid><author>notAlmost</author><pubDate>Fri, 04 May 2012 16:04:15 +0800</pubDate><description><![CDATA[插入排序是最简单的排序算法之一，其算法复杂度为O(n^2),最好的情况是O(n)。
算法简介
其实我们在打扑克牌时，就已经用到排序算法了。我们左手拿着的是已经排序号的扑克牌，右手从牌堆里抽取一张未排序的扑克，和左右的扑克从右向左意义比较知道找到这张牌的位置，将其插入到左手的牌中。


算法很简单，有几点需要注意的：
1，为什么是从右向左比较？
当要排序的数据是以数组（array）形式]]></description><category></category></item></channel></rss>