随笔分类 -  数据结构

摘要:链表,可分为以下几种:单链表双端链表有序链表双向链表一、单链表在链表中,我们插入的每数据项都可视为包含在链接点(link)中。而每一个链接点是某个类的对象,我们先(下面也是这样)将这个类叫做Link。而这些节点怎样关联在一起呢?这里再引入一个next字段,表示对下一个... 阅读全文
posted @ 2018-04-07 16:31 legendaryhaha 阅读(218) 评论(0) 推荐(0)
摘要:队列是基于先进先出的模式(First In First Out, 简称FIFO)。队列的操作有:在java中:offer()/add()均可执行入栈的操作,它们的区别是,当超出队列界限的时候,add()会直接抛出异常等你处理,而offer()有事先判断的所以放回fa... 阅读全文
posted @ 2018-04-05 15:53 legendaryhaha 阅读(139) 评论(0) 推荐(0)
摘要:栈作为一种存储数据的结构,它的原理是后进先出表(Last In First Out, 简称LIFO,有人说是先进后出道理一样别被绕晕233)其限制是仅允许在表的一端进行插入和删除运算,把对栈进行运算的一端称为栈顶,另一端称为栈底,当我们向一个栈插入新元素称为入栈或进栈... 阅读全文
posted @ 2018-01-07 11:38 legendaryhaha 阅读(134) 评论(0) 推荐(0)
摘要:在写快速排序前我们们可以写一下划分,划分的目的是数组基本有序,怎么使数组基本有序?这需要我们提前选一个值作为枢纽,作为划分数组的关键值,使大的元素和较小的元素分布在这个枢纽的两边,这就需要我们事先对数组里元素有一个大致上的了解。//划分算法public int par... 阅读全文
posted @ 2018-01-06 18:20 legendaryhaha 阅读(121) 评论(0) 推荐(0)
摘要:1.前面讲的简单的排序都是连续性的(指每一个元素与其他元素比较都是一个一个的逐一比较的),而哈希尔的排序是跳跃式的( 依靠一个预先设好的增量),基于此,一个元素与其他元素比较时间隔都是h,接着h逐渐缩小,而它又是基于插入排序的,只不过,插入排序每次只与前面的一个元素... 阅读全文
posted @ 2018-01-05 17:38 legendaryhaha 阅读(132) 评论(0) 推荐(0)
摘要:在这里只写出这三种排序的思路和代码,关于他们的时间,空间复杂度以及稳定性,将在写完高级排序后做具体分析。一、冒泡排序:顾名思义,将小的(或大的也可以)冒出,将大的沉下去。(这里以将小的元素冒出为例)假设有n个元素,每一次选中一个元素后与后面每一个元素进行比较,若是比后... 阅读全文
posted @ 2018-01-04 19:16 legendaryhaha 阅读(131) 评论(0) 推荐(0)