![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
认真很简单
这个作者很懒,什么都没留下…
展开
-
选择排序
选择排序:元素个数:n外层循环:0内层循环:out+1过程:将out后面的所有元素与当前out元素值比较,保证out位置的元素是从out到最后的这些元素中最小的。package datastructure.c3.sort.selectsort;public class ArraySel { private long[] a; private int nElems; p原创 2017-04-07 12:44:55 · 174 阅读 · 0 评论 -
插入排序
插入排序:元素个数:n外层循环:1内层循环:x过程:外层从第二个元素开始,到最后一个;0到out-1的元素已有序,内层循环从out位置向前找,将out位置元素插入到合适位置x,须将x到out-1之间的元素后移一个位置。package datastructure.c3.sort.insertsort;public class ArrayIns { private long[原创 2017-04-07 13:27:46 · 241 阅读 · 0 评论 -
冒泡排序
冒泡排序算法简单,易理解,效率低package datastructure.c3.sort.bubblesort;public class ArrayBub { private long[] a; private int nElems; public ArrayBub(int max){ a=new long[max]; nElems=0; } public void i原创 2017-04-07 11:48:22 · 214 阅读 · 0 评论 -
优先级队列
插入过程:外层循环当前所有元素,从最后一个到第一个,要插入的元素与当前循环元素比较,当前元素向后移位或退出循环package datastructure.c4.queue.priority;public class PriorityQ { private int maxSize; private long[] queArray; private int nItems; public原创 2017-04-09 10:22:25 · 212 阅读 · 0 评论 -
链表
链表和数组都是应用广泛的通用存储结构数组:无序数组搜索效率低,有序数组插入效率低,数组创建后大小不可改变链表:在表头插入删除O(1),平均插入、删除O(N)(与数组相比不需要移动元素),链表大小可扩展一般链表package datastructure.c5.linklist.def;public class Link { public int iData; public d原创 2017-04-10 12:28:14 · 263 阅读 · 0 评论 -
栈(基于数组和链表)
栈是一个概念上的辅助工具,提供限定性的访问方法,使程序易读且不易出错。时间复杂度为O(1)。栈的数组实现package datastructure.c4.stack.stackdef;public class StackX { private int maxSize; private long[] stackArray; private int top; public Stac原创 2017-04-08 00:05:12 · 302 阅读 · 0 评论 -
基于数组的循环队列和基于链表的队列
数据的插入和取出涉及对当前数据量nItems属性的修改,大量的插入、移除操作时,对nItems属性的操作可能影响性能,可参考不包含数据项个数属性的队列实现。包含数据项个数属性的队列package datastructure.c4.queue.queuedef;public class Queue { private int maxSize; private long[] queAr原创 2017-04-08 00:20:42 · 323 阅读 · 5 评论 -
有序数组
有序数组使用二分查找算法,查找速度比无序数组快,插入数据比无序数组慢,删除数据有序及无序数组都较慢。package datastructure.c1.array.ordarray;public class OrdArray { private long[] a; private int nElems; public OrdArray(int max){ a=new long[原创 2017-04-06 20:47:03 · 807 阅读 · 0 评论 -
数组算法时间复杂度
一些算法的时间复杂度算法时间复杂度线性查找O(N)二分查找O(logN)无序数组的插入O(1)有序数组的插入O(N)无序数组的删除O(N)有序数组的删除O(N)原创 2017-04-06 20:57:54 · 5966 阅读 · 0 评论