自各儿对java数据结构跟算法的理解

自己对java数据结构跟算法的理解
对于大部分编程人员来说 只要会用现有的数组或者链表,哈希表就行 也不需要太多考虑其中的执行速度的快慢 因为我们基本上编写的都是相对于操作用户很少的人群 所有大部分人对数据结构也都不太重视 从而导致大部分人都习惯使用数组 插入 保存 删除 但是其中的执行效率问题估计也不太重视。

但是当对于大项目 或者对于用户数目比较多得人数的话 我们需要考虑算法的执行速度问题 他或许会带来一点效率 但是当你充分了解了数据结构的话 这其实对于已日后的编程也会提高很多。。

这对于 元素个数固定 要求执行插入数组快得情况下 我们首先考虑的是无需数组的插入 因为他不在乎数组的长度问题 只需改变下标即可完成操作 用大O表示的执行效率是0(1)速度很快

但是当对于查找 跟删除他的效率确实很慢 比不上链表 。有的人获取就喜欢用数组来进行一些查找或者删除 那么有什么比无序素组要快的方法呢 那就是将有序数组 按照冒泡或者插入 选择排序对其进行排序 从而提高删除 和查找速度 但是这3中排序 按照效率上来说 插入是首选的 实现比冒泡或者选择 有那么一点难度 但是比较次数降低了很多 冒泡排序的比较次数跟查找次数都是0(N*N) 对于选择排序来说查找次数跟冒泡排序一样 但是比较次数要少很多。

对于计算机语言来说 排序不像我们人类可以用眼差不多就能分辨出大小或者高低 他们只能进行2个之间的比较然后进行交换 说有执行速度是很慢的 针对于数据量大的情况下。

这是我对于数组这方面的一些理解跟建议  
插入 ---》无序数组即可
删除跟查找-----》有序数组(实现方法插入排序) 前提是只在数组访问内