排序:
默认
按更新时间
按访问量
RSS订阅

从归并排序到逆序对数目计算。

归并排序中“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。 归并过程参考下图: 2-路归并排序算法是基于分治的思想,先将含有n个元素的待排序表分成各n/2个元素的子表,对这个两个子表进行排序,这个是mergeSort()操作;再将排好序的两个子表合并成一个表,这个是merge...

2017-05-04 11:27:37

阅读数 323

评论数 0

计算1至n中数字X出现的次数

计算1到2593这个范围中,数字5总共出现了多少次。 计算的是数字5出现的总次数,而不是包含这个数x的数字个数。 如求出1~13的整数中1出现的次数,则为 1、10、11、12、13 这5个数字1共出现了6次,而不是5次。

2017-05-03 09:36:47

阅读数 356

评论数 0

二叉树中序遍历非递归实现

根据中序遍历的顺序,对于任一结点,优先访问其左孩子,而左孩子结点又可以看做一根结点,然后继续访问其左孩子结点,直到遇到左孩子结点为空的结点才进行访问,然后按相同的规则访问其右子树。因此其处理过程如下。 对于任一结点P: 1)若其左孩子不为空,则将P入栈并将P的左孩子置为当前的P,然后对当前...

2017-05-02 20:25:08

阅读数 176

评论数 0

堆排序算法

堆是一个完全二叉树的结构,分为大顶堆和小顶堆。 用一个数组存放一个完全二叉树,在数组中索引为i的结点的左子节点索引为i*2+1,右子节点索引为i*2+2,父节点为(i-1)/2。 时间复杂度: 建堆的时间复杂度为O(n)。建堆算法是从最后一个非叶子结点开始下溯,也可以把建堆过程想成先对左子...

2017-05-02 20:20:52

阅读数 367

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭