数据结构与算法
Frank Kang
不可久留于一处
展开
-
手写一个ArrayList集合
package com.example.demo.arraylist;import java.util.Arrays;/** * ArrayList的实现() * @author 阿康 */public class MyArrayList { public static void main(String[] args) { ArrayListClass arrayListClass = new ArrayListClass(); arrayL...原创 2020-06-09 14:57:37 · 184 阅读 · 0 评论 -
时间复杂度和空间复杂度
时间复杂度和空间复杂度简介原创 2020-06-09 14:38:45 · 150 阅读 · 0 评论 -
二分法(折半查找法)Java实现
二分法是静态查找法的一种,又称折半查找法,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。(要求其静态查找表必须是有序的)在折半查找之前对查找表按照所查的关键字进行排序的意思是:若查找表中存储的数据元素含有多个关键字时,使用哪种关键字做折半查找,就需要提前以该关键字对所有数据进行排序。对静态查找表{2,4,6,8,10,12,14,15,16,19,20}采用折半查找算法查找关键字为 4 的过程为先把查找表从中间一分为二,(查找表长度的一半11/2=5),试比较中间索引位置的值和查找关键原创 2020-06-08 16:18:12 · 605 阅读 · 1 评论 -
图(数据结构)
图简介在计算机程序设计中,图是最常用的结构之一。一般来说,对于数据存储是用不到图,图一般是用来辅助解决某些具体的问题的用的。图是一种与树相似的数据结构,从数学意义上讲,树是图当中的一种,但是图的应用方式又和树是不同的:图是没有这样固定的结构的。...原创 2020-06-05 17:57:37 · 2170 阅读 · 0 评论 -
深度优先搜索(DFS)
所谓深度优先搜索,是从"图"中的一个顶点出发,每次遍历当前访问顶点的临界点,一直到访问的顶点没有未被访问过的临界点为止。然后采用依次回退的方式,查看来的路上每一个顶点是否有其它未被访问的临界点。访问完成后,判断图中的顶点是否已经全部遍历完成,如果没有,以未访问的顶点为起始点,重复上述过程。(百度)(不了解图的可以先看看这篇文章)深度优先搜索(DFS)(深度优先搜索通过栈来实现)注:深度优先搜索(DFS)是图搜索方法的一种规则如下:规则1:如果可能,访问一个邻接的未访问顶点,标记它,并..原创 2020-06-05 17:20:56 · 336 阅读 · 0 评论 -
归并排序
利用归并和递归的思想实现的 归并排序归并算法的中心是归并两个已经有序的数组。归并两个有序数组A和B,就生成了第三个有序数组C。数组C包含数组A和B的所有数据项。先来看看归并两个有序数组的实现 (可运行)package com.example.demo.recursion;import java.util.Arrays;/** * @author 阿康 * 归并两个有序数组 */public class RecursionDemo5 { public stat.原创 2020-06-05 16:39:18 · 123 阅读 · 0 评论 -
栈原理及实现
栈(stack)必须遵守元素先进后出的规定,如果不遵守就不是栈了!栈也称为后进先出表。栈作为数据结构,是一种只能在一端进行插入和删除操作的特殊线性表 。先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈的具体实现.原创 2020-06-05 16:10:03 · 587 阅读 · 0 评论