阅读背景:

java常用算法工具

来源:互联网 
package com.jtws.common.base;

/**
 * Created by kongweichun on 2019/1/22.
 * chongqing liangyao
 *
 * 算法工具
 * 1:线性结构 (数据元素之间存在“一对一”数据对应关系)
 *      数组、链表、队列、栈
 * 2:非线性结构
 *      树、图、表
 *
 *
 *==========================线性结构================================
 *[数组]:
 *      特点:
 *          数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,
 *          因此,查询速度很快,然而插入和删除时,需要对元素移动空间,比较慢。
 *      使用场景:
 *          频繁查询,很少有增加删除的操作
 *
 *[链表]:
 *      特点:
 *          元素可以不连续内存中,是以索引将数据联系起来的,当查询元素的时候需要从头开始查询,
 *          所以效率比较低,然而添加和删除的只需要修改索引就可以了
 *      使用场景:
 *          很少查询,频繁的增加删除操作
 *
 *[队列]:
 *      特点:
 *          先进先出
 *      使用场景:
 *          多线程阻塞队列管理非常有用
 *
 *[栈]:
 *      特点:
 *          先进后出
 *      使用场景:
 *          实现递归以及表示式
 *
 *[数组与链表的区别]:
 *      数组连续,链表不连续(从数据存储形式来说)
 *      数组内存静态分配,链表内存动态分配
 *      数组查询方便快捷,链表查询复杂不易
 *      数组添加删除复杂不易,链表添加删除方便快捷
 *      数组从栈中分配内存,链表从堆中分配内存
 *==========================线性结构================================
 *
 *==========================算法分类================================
 * 1:插入排序 (直接插入排序,希尔排序)
 * 2:交换排序 (冒牌排序,快速排序)
 * 3:选择排序 (直接选择排序,堆排序)
 * 4:归并排序
 * 5:分配排序 (基数排序)
 * 所需辅助空间最多:归并排序
 * 所需辅助空间最少:堆排序
 * 平均速度排序最快:快速排序
 * 不稳定:快速排序、希尔排序、堆排序
 *==========================算法分类================================
 
 * Create



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: