基础补充-算法

计算机算法分析之渐进记号

http://blog.csdn.net/u013132758/article/details/50877754html

http://blog.csdn.net/stanxl/article/details/44567285java

http://www.cnblogs.com/zabery/archive/2011/07/19/2110994.htm算法

O

Ω Omega

Θ Theta

clip_image002[50] Omega(小写)

 

渐近式表达法是一种对算法效率的指标;评估一个程序效率是否高效的方法;json

数组:数组

LinkedList<String> linkList = new LinkedList<String>();
Stack<String> stack = new Stack<String>();

咱们知道ArrayList是List接口的一个实现类,它的特色是查询效率高,增删效率低,线程不安全 
缘由是由于ArrayList底层是封装了一个数组,它是用数组实现的。 

看完了ArrayList,咱们再去研究一下LinkedList 
它的特色是:增删效率比较高,而查询效率低 

堆栈: 分为堆和栈;堆(先进后出,能够想象一下无序的垃圾堆),栈(先进后出,能够想象很窄的一端封死的栈道);安全

队列:有个入口,一个出口,先进先出;服务器

java 序列化:你有一个应用程序,须要传一些数据给其它应用程序,但数据保存在你的进程的堆栈中,其它进程没法访问你的应用程序进程的堆栈,要想把你的程序的数据给其它程序使用,必须将数据以某种形式传给其它进程,这个“某种形式”就是序列化。json只是序列化的一种方式。网络

把对象转换为字节序列的过程称为对象的序列化。
  把字节序列恢复为对象的过程称为对象的反序列化。
  对象的序列化主要有两种用途:
  1) 把对象的字节序列永久地保存到硬盘上,一般存放在一个文件中;
  2) 在网络上传送对象的字节序列。

  在不少应用中,须要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。好比最多见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,因而Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中。

  当两个进程在进行远程通讯时,彼此能够发送各类类型的数据。不管是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方须要把这个Java对象转换为字节序列,才能在网络上传送;接收方则须要把字节序列再恢复为Java对象。

参考http://www.cnblogs.com/xdp-gacl/p/3777987.html并发

本地序列化代码:ui

import java.io.*;
import java.util.Date;


public class SerializableDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//Initializes The Object
        User user = new User();
        user.setName("hollis");
        user.setGender("male");
        user.setAge(23);
        user.setBirthday(new Date());
        System.out.println(user);

        //Write Obj to File
        ObjectOutputStream oos = null;
        try {
            oos = new ObjectOutputStream(new FileOutputStream("tempFile"));
            oos.writeObject(user);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            ;//IOUtils.closeQuietly(oos);
        }

        //Read Obj from File
        File file = new File("tempFile");
        ObjectInputStream ois = null;
        try {
            ois = new ObjectInputStream(new FileInputStream(file));
            User newUser = (User) ois.readObject();
            System.out.println(newUser);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally { 
            ;//FileUtils.forceDelete(file);
        }
	}

}

本地序列化的效果:

 sr User狆?z;矪 I ageL birthdayt Ljava/util/Date;L namet Ljava/lang/String;xp   sr java.util.Datehj?KYt  xpw  [B?xt hollis

概括起来,就是把你的数据换个时间和/或换个地方,继续使用

换个时间,好比存盘
换个地方,好比网络传输

排序算法:

一图胜千言。【想一想大学老师教的真是。。。。】

http://blog.csdn.net/u010850027/article/details/49362279

http://blog.csdn.net/donglynn/article/details/49758003【上备】

排序效率:

https://www.oschina.net/code/snippet_617085_4369

相关文章
相关标签/搜索