它的思想是将一个无序的数组先用递归进行二分,当分解为无限小时,即为单个整数时,再对其进行排列。得出有序的数组 代码如下: package com.jll.sort; public class MergeSort { public MergeSort() { } public void merge(i...
分类:
其他好文 时间:
2014-07-06 21:01:33
阅读次数:
161
在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树(Binary Tree)是每个节点最多有两个子树的有序树。通常子树被称作"左子树"(left subtree)和"右子树"(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。值得注意的是,二叉树不是树的特殊情形。在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点后,每个顶点定义了唯一的根结点,和最多2个子结点。...
分类:
其他好文 时间:
2014-07-05 11:01:30
阅读次数:
267
上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程。如果一个序列本来就是有序的,对它排序的时间复杂度是O(n)。所以当序列基本有序时,插入排序排序的效率大提高,因为减少了移动的动作。
另外,接插入排序还有一个特点,当n比较小时,它的效率比较高。...
分类:
其他好文 时间:
2014-07-04 08:54:11
阅读次数:
302
在前面的博文中,我们已经介绍了数据结构之二分查找树的相关知识,二分查找的提出主要是为了提高数据的查找效率。同一个元素集合可以对应不同的二分查找树BST,二分查找树的形态依赖于元素的插入顺序。同时我们也已经知道,如果将一个有序的数据集依次插入到二查找树中,此时二分查找树将退化为线性表,此时查找的时间复杂度为o(n)。为了防止这一问题的出现,便有了平衡二叉树AVL的存在价值。平衡二叉树从根本上将是为了防止出现斜二叉树的出现,从而进一步提高元素的查找效率,保证元素查找的时间复杂度为o(logn),显然,平衡二叉树...
分类:
其他好文 时间:
2014-07-04 08:04:40
阅读次数:
1711
数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素。1. 一维数组1.1 一维数组的定义type arrayName[];type[] arrayName;当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法...
分类:
编程语言 时间:
2014-07-03 21:01:24
阅读次数:
212
数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素。1. 一维数组1.1 一维数组的定义type arrayName[];type[] arrayName;当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法...
分类:
编程语言 时间:
2014-07-03 20:33:31
阅读次数:
208
数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素。1. 一维数组1.1 一维数组的定义type arrayName[];type[] arrayName;当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法...
分类:
编程语言 时间:
2014-07-03 20:16:39
阅读次数:
178
//希尔排序在直接插入排序算法中,每次插入一个数,使有序序列仅仅添加1个节点,而且对插入下一个数没有提供不论什么帮助。假设比較相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比較就可能消除多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先...
分类:
其他好文 时间:
2014-07-02 17:20:07
阅读次数:
192
(一)归并排序
分析:
(1)划分问题:把序列分成元素个数尽量相等的两半。
(2)递归求解:把两半元素分别排序。
(3)合并问题:把两个有序表合并成一个。(每次只需要把两个序列的最小元素加以比较,删除其中的较小元素并加入合并后的新表)
#include
using namespace std;
const int MAXN = 1000;
int A[MAXN], T[MAXN];
...
分类:
其他好文 时间:
2014-07-02 09:22:26
阅读次数:
243
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first
two lists.
代码如下:
* Definition for singly-linked list.
* struct L...
分类:
其他好文 时间:
2014-07-02 07:23:59
阅读次数:
159