目录 排序算法分类 一、冒泡排序(Bubble Sort) 1、原理 2、步骤 3、动画演示 4、代码实现 5、具体示例 二、选择排序(Selection Sort) 1、原理 2、步骤 3、动画演示 4、代码实现 5、具体示例 三、插入排序(Insertion Sort) 1、原理 2、步骤 3、动画演示 4、代码实现 5、具体示例 四、希尔排序(Shell Sort) 1、原理 2、步骤 3、动画演示 4、代码实现 5、具体示例 五、归并排序(Merge Sort) 1、原理 2、步骤 3、动画演示 4、代码实…

2021年9月17日 0条评论 0点热度 阅读全文

  看了很多讲B树和B+树的文章,大多都是围绕各自的特性讲的,第一,树中每个结点最多含有m个孩子(m>=2);第二,……我也是从这些文章里弄懂了各种树的联系与区别,要真写,我可能还不如人家写得好。所以就在这里简明扼要的用几张图记录一下主要区别吧。    为了便于说明,我们先定义一条数据记录为一个二元组[key,data],key为记录的键值,key唯一;data为数据记录除key外的数据。   B树   每个节点都存储key和data,所有节点组成这棵树,并且…

2021年5月3日 0条评论 17点热度 阅读全文

数据结构基础知识核心归纳(二) 转载请声明出处:http://blog.csdn.net/andrexpert/article/details/77906004 Android                                          Java      …

2017年9月9日 0条评论 3点热度 阅读全文

有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。   如果每次走1级,需要走10步,结果可以表示成(1,1,1,1,1,1,1,1,1,1); 如果每次走2级,需要走5步,结果可以表示成(2,2,2,2,2,); 思考一下,你还能写出几种…… 那么,共有多少种走法呢?   我们可以这样想,假设我们现在还有最后一步要走,可能的情况有哪些? 1.我们站在第9级上,一步1级后到达顶端; 2.我们站在第8级上,一步2级后到达顶端; 所以,最后…

2017年6月2日 0条评论 15点热度 阅读全文

1 二分查找 //二分查找 typedef int Rank; template<typename T> Rank BinarySearch(T *A, T const& value, Rank lo, Rank hi) { if (value < A[lo] || A[hi] < value) return -1; while (lo <= hi) { Rank mid = lo + ((hi - lo) >> 1); if (A[mid] < value)…

2017年4月15日 0条评论 20点热度 阅读全文

public class Link { public long lData; public Link next; public Link(long lData){ this.lData=lData; } public void displayLink(){ System.out.print(lData+" "); } } public class CircleList { private Link current; private int nItems; public CircleList(){ current=n…

2016年3月11日 0条评论 0点热度 阅读全文

前言        二叉排序树(又称二叉查找树、二叉搜索树),在进行查找、插入及删除操作时其平均时间复杂度为O(logn),但是它们的最坏时间复杂度都是O(n)和顺序查找的效率相同,出现这种情况的原因在于它们虽然对关键字值进行了排序,但是并没有对树的形状进行限制。即当关键字序列有序时,就会出现这种最坏情况(单侧的二叉树),平衡二叉树的引入就可以对其进行有效调整。        例如:对于…

2014年10月16日 0条评论 16点热度 阅读全文