
数据结构和算法
山中小僧
这个作者很懒,什么都没留下…
展开
-
Java实现排序算法之快速排序
一、综述 快速排序是交换排序中的一种,平均算法复杂度是O(nlogn),最坏O(n*n)。下面用Java实现一个快速排序,并用注释的方式解释了思想和原理。二、Java实现堆排序package com;/** * @author 王勤为 * * 这个是实现快速排序的类 * * 快速排序的基本思想是分治法:原创 2015-08-07 23:00:47 · 532 阅读 · 0 评论 -
Java实现排序算法之堆排序
一、综述 堆排序是选择排序中的一种,算法复杂度是O(nlogn),最坏最好都是这个。下面用Java实现一个堆排序,并用注释的方式解释了堆排序的思想和原理。二、Java实现堆排序/** * @author 王勤为 * * 1.这是实现堆排序的类,所有的方法都是静态方法,这里实现的是大顶堆 * * 堆排序包含:建立堆,调整堆、堆排序、数组元素交换原创 2015-08-05 12:33:12 · 540 阅读 · 0 评论 -
Java实现数据结构之二叉查找树
一、综述 二叉查找树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的节点原创 2015-08-10 10:58:28 · 716 阅读 · 0 评论 -
Java统计二进制数中1的个数
一、问题描述 输入一个整数X,统计其二进制形式中1的个数。二、思路分析 粗略一看,似乎应该把X转化成二进制形式,然后遍历统计其中1的个数,但是这种方法首先转换二进制就很麻烦,然后还需要遍历统计。三、更巧妙的方法——利用位运算符&public int calculateNum(int x) { int countx = 0;原创 2015-08-10 17:11:19 · 1106 阅读 · 0 评论 -
Java实现排序算法之归并排序
一、综述 归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 算法描述 归并操作的过程如下:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个原创 2015-08-08 15:56:21 · 549 阅读 · 0 评论