- 博客(17)
- 收藏
- 关注
原创 排序算法(六)——堆排序
堆排序(heap sort)同样也是选择排序的一种,但它是对简单选择排序的一种改进,改进的着眼点:如何减少关键码间的比较次数。若能利用每趟比较后的结果,也就是在找出键值最小记录的同时,也找出键值较小的记录,则可减少后面的选择中所用的比较次数,从而提高整个排序过程的效率。
2016-02-21 14:46:11
603
原创 排序算法(五)——简单选择排序
简单选择排序:就是待排序序列中选出关键码最小的记录,添加到有序序列中。简单选择排序的特点就是记录移动的次数比较少,是一种不稳定的排序算法。
2016-02-19 21:35:00
2848
原创 排序算法(四)——快速排序
快速排序是对冒泡排序的一种改进,适用于待排记录个数很大并且原始记录随机(这也是数据的主要情况:多、乱)。快速排序的平均性能很好。
2016-02-19 20:59:22
1780
原创 排序算法(三)——冒泡排序
冒泡排序是一种简单、稳定的排序算法。主要思想: 对无序区从前向后依次将相邻记录进行比较,若反序则交换,从而使的小的记录向前移,大的记录向后移,直到没有反序。
2016-02-19 00:21:49
661
原创 排序算法(一)——直接插入排序
直接插入排序简单、容易实现,当记录叫少是可以选择,但是记录较多时大量的比较移动,效率非常低。直接插入排序是一种稳定的排序方法。
2016-02-18 21:18:05
774
原创 图结构之最小生成树(MST)——Prims(普里姆)算法、Kruskal(克鲁斯卡尔)算法
最小生成树的两个经典算法——Prims(普里姆)算法、Kruskal(克鲁斯卡尔)算法,笔者自己分别理解为:割边、加边
2016-02-18 15:38:57
1616
原创 平衡二叉树(Balance Binary Tree) --AVL树
平衡二叉树(Balance Binary Tree)又称AVL树。对二叉查找树做了很大的改进,使得查找的效率真正保证为O(logN),每次插入都保证树必须满足平衡。
2016-02-18 12:08:40
6942
1
原创 树结构--二叉树
树结构是一种比线性结构更加复杂的数据结构,比较合适描述具有层次的数据。树、二叉树等在实际应用非常广泛。搜索、排序、数据库中的索引(B、B+树)、字典树等。
2016-02-17 14:53:58
1133
原创 java栈--后进先出(顺序栈、链栈、单词逆序)
栈的操作就是针对栈顶元素,其特点就是后进先出。这里分别采用数组和单链表分别实现了一个顺序栈和链栈,并且共享了一个栈的应用: 单词逆序。
2016-02-16 19:51:11
3214
原创 线性表之双链表--DoublyLinkList,类似于类库中的 LinkedList
线性表之双链表(DoublyLinkList),笔者自己定义的一个双链表,和类库中的LinkedList 类似, 可能很多方法写的还是不是很全,共享给读者。若想了解更多参见类库源代码及文档。
2016-02-16 15:59:45
697
原创 线性表之单链表--SingleLinkedList
线性表之单链表(SingleLinkedList),笔者自己定义的一个单链表,可能很多方法写的还是不是很全,共享给读者。关于双链表将在下一节介绍。
2016-02-16 13:38:44
1243
原创 线性表之顺序表--类似于java库中的ArrayList
线性表--顺序表。直定义一个顺序表MyArrayList 和java类库中的 ArrayList 类似,只是为了加深对顺序表的理解。
2016-02-15 21:27:31
550
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人