算法与数据结构
文章平均质量分 53
小蔡学编程
记录学习过程,复习知识顺便记录在博客里。
展开
-
Java自定义实现单链表
目录一、自定义java单链表原理概述二、自定义java单链表功能实现细节三、实现代码一、自定义java单链表原理概述单链表概念及结构 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 自定义实现功能图示 原理图示 实现原理分析二、自定义java单链表功能实现细节自定义Linke.原创 2022-05-15 20:13:03 · 2531 阅读 · 0 评论 -
java自定义一个数组类(封装多种方法)
一、自定义数组类的动机 java给定的数组为静态的,我们是无法对齐进行灵活的操作,比如指定位置添加元素,删除元素,判断是否非空等,于是我们便需要利用“面向对象”的设计模式,自定义一个数组类,将这些我们可能需要的方法功能封装进去,使得数组可以灵活进行增删改查判空等操作,即“动态数组”。原创 2022-02-26 22:56:15 · 3421 阅读 · 0 评论 -
基础排序算法之插入排序法
一、前言:插入排序法在现实中很像我们斗地主时对于手里的牌的排序,每次都将当前元素与其前面的元素进行比较,如果小于,则交换两元素的位置,直到元素最小。话不多说上代码。二、算法实现1、未优化前的插入排序 实现public static <E extends Comparable<E>> void InsertSort(E[] array){ for (int i=1;i< array.length;i++){ //外层循环原创 2022-02-12 00:01:32 · 351 阅读 · 0 评论 -
基础排序算法之选择排序法
一、选择排序法思路:先将最小(大)的元素取出,再在剩下的元素,再将其中最小(大)的取出,每次选择未处理的元素中最小(大)的元素,进行排序。 1、两种思路: ①开辟一个新的数组空间,将比较出来的最小(大)元素依次放入新数组中进行排序 ②进行原地排序,在源数组中进行元素的交换。二、算法的实现 1、开辟空间排序算法实现: /** * 开辟空间异地排序 * 对一个数组的元素进行排序(从小到大输出),选择排序 ...原创 2022-02-11 23:51:09 · 2447 阅读 · 1 评论 -
常见的算法复杂度及其示例(java版)
一、引言 我们都知道,算法复杂度是用来评估算法性能的,在计算复杂度时,应当做出最差最不理想的估计,例如在循环遍历一个数组查找一个元素时,应当估计循环完全进行,这也称为算法运行的上界,在数据结构和算法中,以T表示算法性能(时间、复杂度),以O为常量,T=O(n),n越大,表示复杂度越高。二、常见的算法复杂度及其排序:O(1)<O(logn)<O(√n)<O(n)<O(nlogn)<O(n^2)<O(2^n)<O(n!)三、举例:①、复杂度..原创 2021-11-09 19:53:37 · 893 阅读 · 0 评论