数据结构
CodeHunter_qcy
菜鸡进阶之路
展开
-
数组模拟环形队列
数组模拟环形队列package com.qcy.arrayqueue;public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue arrayQueue = new ArrayQueue(3); arrayQueue.addQueue(1); arrayQueue.addQu...原创 2020-01-15 14:43:29 · 320 阅读 · 0 评论 -
数据结构之线性表之LinkedList源码学习
数据结构之线性表之LinkedList源码学习看源码之前,复习一下LinkedList的使用方法吧!常用方法增添元素boolean add(E e):将指定元素添加到链表末尾void add(int index, E e):将指定元素插入到链表的指定位置boolean addAll(Collection c):将指定集合中的所有元素添加到链表末尾boolean addAll(in...原创 2020-01-13 13:27:08 · 165 阅读 · 0 评论 -
数据结构之线性表之ArrayList源码学习
好久没写博客,一直是写在笔记上面。我一直用的JDK8,所以今天的源码分析也是基于JDK8。ArrayList简介ArrayList 是一个动态数组队列。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。Arr...原创 2020-01-12 21:59:50 · 1326 阅读 · 0 评论 -
数据结构排序算法学习之插入排序
数据结构排序算法之插入排序<一>插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时...原创 2019-09-02 08:46:43 · 32040 阅读 · 0 评论 -
数据结构排序算法学习之插入排序2
数据结构排序算法之插入排序<二>2.折半插入排序基本思想:Java实现:package priv.qcy.sort.insert;public class BinaryInsertSort { public static void binaryInsertSort(int[] a) { int n = a.length; int i, j; for (i =...原创 2019-09-03 19:56:15 · 26326 阅读 · 0 评论 -
数据结构排序算法学习之插入排序3
数据结构排序算法之插入排序<三>3.希尔排序(递减增量排序)希尔排序从“减少记录个数”和“序列基本有序”两个方面对直接插入排序算法进行改进,但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序。对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所...原创 2019-09-03 20:28:31 · 26228 阅读 · 0 评论 -
数据结构排序算法学习之插入排序(总)
数据结构排序算法之插入排序<一>插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时...原创 2019-09-04 20:07:26 · 8061 阅读 · 0 评论 -
数据结构之二叉树
数据结构之二叉树emmmmmm复习一下二叉树的知识基本知识一、树的定义树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。树具有的特点有:(1)每个结点有零个或多个子结点(2)没有父节点的结点称为根节点(3)每一个非根结点有且只有一个父节点(4)除了根结点外,每个子结点可以分为多个不相交的子树。树的基本术语有:若一个结点有子树,那么该结点称...原创 2019-09-07 11:06:33 · 5562 阅读 · 0 评论 -
数据结构之二叉堆
数据结构之二叉堆一、什么是二叉堆二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。二、二叉堆的基本操作1.插入假设在最大堆[90,80,70,60,40,30,20,10,50]种插入85,需要执行的步骤如下:...原创 2019-09-09 12:04:24 · 13768 阅读 · 0 评论