简要归纳Java数据结构和排序算法

一,通用的数据存储结构:

1,数组:一种引用类型

2,有序数组:将数据进行了排序

3,链表:前一个链结点持有下一个链结点的引用

4,有序链表:对链表进行了排序

5,二叉树:既可以用链表来实现也可以用数组来实现

6,平衡树:简单来讲就是除最底层外所有节点的左右子节点个数相同

7,哈希表:也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表

二,专用数据结构:

1,栈:后进先出 LIFO(数组或链表)

2,队列:先进先出 FIFO(数组或链表)

3,优先级队列:(有序数组或堆)

三,排序算法:一句话总结

1,冒泡排序:交换位置找出最大的;

2,选择排序:找出最小的记录,并与左端的交换位置;

3,插入排序:右端访问的数据与左端局部有序的数据进行比较,插入移位;

4,希尔排序:间隔排序,移位间隔排序,减少间隔,递归;

5,快速排序:划分,两端往枢纽处遍历,遇到合适的位置进行交换,对枢纽两端再递归;

6,归并排序:二分法,分成俩个区域,递归对俩个区域排序,再合并;

7,堆排序:把无序数组插入堆,然后有序remove;

四,搜索算法:

1,广度搜索算法:是指没有目的,全部搜索;

2,深度搜索算法:不达目的誓不罢休,遇到死胡同返回继续深度算法;

3,启发式搜索算法:在每次搜索时,建立一套规则,f(x) = g(x) + h(x),找到最合适的那个继续搜索,过程中会建立俩个区域,一个是开放区域,一个关闭区域,这两个区域顾名思义,前者可以继续搜索,后者关闭不去再次搜索;

     A*、B*、蚁群算法属于启发式搜索(趋势效应);

五,游戏常用算法:

1,寻路算法:A*、B*

2,追踪算法、拦截追踪算法

3,闪避算法、高级躲避算法

相关推荐