
数据结构与算法
文章平均质量分 51
Sunny_Shu123
一切皆有可能
展开
-
二叉树的构建与遍历
根据数组创建二叉树,并对二叉树进行先序、中序和后序遍历。 代码实现:import java.util.LinkedList;import java.util.List;public class BinaryTree {private static List nodeList=null;/*** MethodName:main * De原创 2016-09-27 20:55:18 · 305 阅读 · 0 评论 -
常用排序算法之冒泡排序
冒泡排序,不断的遍历数组,若相邻两元素A[i]>A[i+1],则将A[i]与A[i+1]交换。代码实现:public class BubbleSort {public static void main(String[] args) {int[] arr={7,6,4,9,0,5,2,8,3,1}; bubbleSort(arr);}public stat原创 2016-09-28 16:28:48 · 196 阅读 · 0 评论 -
常用排序算法之快速排序
快速排序,采用分治策略,将数组A[n]分组进行递归快速排序。 步骤:以A[0]为基准元素,将数组中比其小的元素放在其左边,比其大的放在其右边;将基准元素左右的数组分别再进行步骤1(即递归)。 代码实现:public class QuickSort {/*** MethodName:main * Description: *原创 2016-09-28 20:13:33 · 332 阅读 · 0 评论 -
常用排序算法之归并排序
归并排序,核心为数组分解和合并的过程。将数组逐渐分解,直到两个两个元素为一组,待小组排序完成后,再将两个两个小组合并为一个一个有序的大组……最后得到排序后的原始数组。 代码实现: public class MergingSort {/*** MethodName:main * Description:常用排序算法之归并排序 * @para原创 2016-09-28 20:51:33 · 288 阅读 · 0 评论 -
常用排序算法之基数排序
基数排序,对数组中各元素分别根据个位、十位、百位……进行桶式排序。 代码实现: public class RadixSort {/*** MethodName:main * Description:常用排序算法之基数排序 * @param args * Return:void * @author Sunny* @date 20原创 2016-09-27 17:28:00 · 274 阅读 · 0 评论 -
常用排序算法之桶式排序
桶式排序,也叫计数排序,就是为每个元素创建一个编号为该元素值的桶,将相同元素的个数写入该桶中,然后根据buckets[i]=buckets[i]+buckets[i-1]计算该元素在排序后数组中的位置,最后将原数组元素根据计算出的数组位置放入原数组。 形象展示 步骤:复制arr[n]到temp[n];创建桶式数组buckets[max-min],并原创 2016-09-27 15:43:33 · 584 阅读 · 0 评论 -
常用排序算法之堆排序
堆,这里指的是二叉堆,即完全二叉树结构。分为最大堆和最小堆。最大堆中,任何节点都比其子节点要大;最小堆中,任何节点都比其子节点要小。堆排序,是一种二叉树选择排序。通过不断地将二叉树调整成最大堆,取出根节点(最大值)放入二叉树的末节点,实现数组的升序排列。步骤:将初始数组构建成最大堆;交换A[0]和A[n-1]的值;将剩余A[0]和A[n-2]构成的完全二叉树构建成最大堆;交换A原创 2016-09-28 16:19:32 · 260 阅读 · 0 评论 -
常用排序算法之直接插入排序
直接插入排序:若一个数组A[n],当插入元素A[i]时(i>0),前i-1个元素已排序完成,此时将A[i]的值取出,并依次与A[i-1]、A[i-2]、……A[0]比较,若A[i] 代码:public class DirectInsertSort {public static void main(String[] args) { int[]原创 2016-09-28 15:06:22 · 267 阅读 · 0 评论 -
常用排序算法之希尔排序
希尔排序:实际为分组采用直接插入排序。若有数组A[n],取k=n/2(若k不是奇数则加1),若i>j,将i-j=k的A[i]、A[j]放在一组,并对每组进行直接插入排序;再取k=k/2(若k不是奇数则加1)……,直到k=1,然后对数组进行直接插入排序。(实际上分组数分别为n/2(n/2+1)、……,5,3,1)代码:public class ShellSort {publi原创 2016-09-28 15:42:36 · 588 阅读 · 0 评论 -
常用排序算法之直接选择排序
直接选择排序:数组A[n],遍历数组元素,将最小的元素放在第一位,剩余元素重复该操作。 编程实现: /*** Title:DirectChooseSort * Description:选择排序之直接选择排序 * Company: * @author Sunny* @date 2016-9-25下午3:47:49 */public c原创 2016-09-28 15:55:10 · 274 阅读 · 0 评论 -
单向链表的创建和操作
public class SinglyLinkedListDemo {/*** MethodName:main * Description: * @param args * Return:void * @author Sunny* @date 2016-9-27下午9:30:39 */public static void main(String[] a原创 2016-09-29 12:24:42 · 520 阅读 · 0 评论