数据结构
Radom7
一个正在驶向架构师的软件工程师
展开
-
数据结构之双向链表
重温数据结构之双向链表:package com.lin.link;/** * 类说明 :双向链表 */public class DoubleLinkedList { // 节点类Node private static class Node{ Object value; Node prev=this; Node next=th原创 2017-09-01 15:37:59 · 227 阅读 · 0 评论 -
树结构(java版)
今天实现下面的树结构 创建节点:public class Node { private char data; private Node lchild; private Node rchild; public char getData() { return data; } public void setData(char ...原创 2018-07-05 14:15:30 · 845 阅读 · 0 评论 -
排序算法之快速排序
package com.lin.sort;/** * @author 作者 林尤庆 * @version 创建时间:2016-8-12 下午02:42:05 * 类说明 :快速排序法(Quick Sort) * * 快速排序的最坏时间复杂度为O(n^2). * 快速排序所占用的辅助空间为递归时所需栈的深度,故空间复杂度为O(log2(n))。同时,快速排序是不稳定的排序。 */原创 2017-08-30 13:48:54 · 211 阅读 · 2 评论 -
排序算法之简单选择排序
package com.lin.sort;/** * @author 作者 林尤庆 * @version 创建时间:2016-8-12 下午03:01:26 * 类说明 :简单选择排序 * * 选择排序法与冒泡排序法一样,最外层循环仍然要执行n-1次,其效率仍然较差。该算法的时间复杂度为 O(n2)。并且排序是稳定的。 */public class SelectSort {原创 2017-08-30 13:46:05 · 252 阅读 · 2 评论 -
排序算法之冒泡算法
package com.lin.sort;/** * @author 作者 林尤庆 * @version 创建时间:2016-8-10 上午10:41:52 * 类说明 :冒泡排序 * * 基本思想: * 首先在n个元素中,若ai>ai+1(i=1..n-1)则交换,得到一个最大元素放于an;其次在n-1个元素中, * 若ai>ai+1(i=1..n-2)则交换,这样得到的一个原创 2017-08-30 13:44:06 · 220 阅读 · 1 评论 -
Java实现二叉树排序
这是我以前写的一个关于二叉树排序的Java实现,对以后面试应该会有用,先保存起来。 二叉树原形: 先定义节点类,data为该节点的数据,lchild和rchild分别为该节点的左右分支:package com.lin.tree;/** * @author 作者 林尤庆 * @version 创建时间:2016-8-11 下午02:46:52 * 类说明 : */public cl原创 2017-08-30 14:05:31 · 449 阅读 · 2 评论 -
排序算法之堆排序
堆的定义:堆实际上是一棵完全二叉树。堆满足两个性质:堆的每一个父节点都大于(或小于)其子节点;堆的每个左子树和右子树也是一个堆。 堆的每个左子树和右子树也是一个堆。堆的分类:堆分为两类:最大堆(大顶堆):堆的每个父节点都大于其孩子节点;最小堆(小顶堆):堆的每个父节点都小于其孩子节点;公式来描述一下堆的定义就是:大顶堆:arr[i] >= arr[2i+1] &...原创 2018-11-17 10:21:57 · 162 阅读 · 0 评论 -
排序算法之归并排序
归并排序(MERGE-SORT)建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。算法描述归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第...原创 2018-11-17 11:38:57 · 155 阅读 · 0 评论