数据结构与算法
文章平均质量分 53
Juvenile少年
仰望星空
展开
-
三、插入排序
插入排序一、什么是插入排序二、算法原理三、动态演示四、代码实现五、算法分析1、时间复杂度2、空间复杂度3、算法稳定性一、什么是插入排序 插入排序(Insertion Sort),一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素原创 2022-05-09 23:06:59 · 149 阅读 · 1 评论 -
二、选择排序
选择排序一、什么是选择排序二、算法原理三、动态演示四、代码实现五、算法分析1、时间复杂度2、空间复杂度3、算法稳定性一、什么是选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排原创 2022-05-08 15:48:57 · 112 阅读 · 3 评论 -
一、冒泡排序
冒泡排序一、什么是冒泡排序一、什么是冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。...原创 2022-05-07 20:26:53 · 111 阅读 · 1 评论 -
数据结构与算法—1、概述
数据结构预算法—1、概述原创 2022-01-10 16:15:28 · 508 阅读 · 0 评论 -
数据结构与算法—2、动态数组ArrayList
数据结构与算法—2、动态数组—ArrayList一、定义接口二、通过ArrayList类来实现接口对应功能三、测试类一、定义接口 既然线性结构可以由顺序存储结构和链式存储结构实现 那么将两者对线性结构共同的操作进行抽取,定义出线性结构的接口package p1.接口;import java.util.Comparator;//线性表接口定义public interface List<E> extends Iterable<E> { //默认在表尾添加一个元素原创 2022-01-10 19:20:03 · 68 阅读 · 0 评论 -
数据结构与算法—2、动态数组ArrayStack
数据结构与算法—2、动态数组ArrayStack一、定义接口二、通过ArrayStack类来实现接口对应功能三、测试类一、定义接口package p1.接口;/** * @Auther: wjw * @Date: 2022/1/9-01-09-14:39 * @Description: p1.接口 * @version: 1.0 */public interface Stack<E> extends Iterable<E> { public int siz原创 2022-01-10 19:27:36 · 65 阅读 · 0 评论 -
数据结构与算法——3、双端栈
数据结构与算法——3、双端栈一、双端栈的定义二、ArrayDoubleEndStack类1.双端栈2.ArrayDoubleEndStack类的实现3.TestArrayDoubleEndStack类三、双端栈扩容缩容问题一、双端栈的定义 是指将一个线性表的两端当做栈底分别进行入栈和出栈操作 主要利用了栈“栈底位置不变,而栈顶位置动态变化”的特性二、ArrayDoubleEndStack类1.双端栈 双端栈是线性表的一种,更是栈的一个特殊分类 所以我们可以用动态数组和栈的思想原创 2022-01-14 15:39:32 · 714 阅读 · 0 评论 -
数据结构与算法——4、循环队列的实现
数据结构与算法——4、循环队列的实现循环队列ArrayLoopQueue1.定义2.代码实现循环队列ArrayLoopQueue1.定义该循环队列的实现思想也是动态数组但是由于操作元素的特殊性,并不能直接由ArrayList或ArrayQueue实现所以从头开始定义ArrayLoopQueue2.代码实现package p3.实例应用;import p1.接口.Queue;import java.util.Iterator;//循环队列public class ArrayLoopQueu原创 2022-01-14 16:32:38 · 138 阅读 · 0 评论 -
数据结构与算法——4、队列的应用文件夹遍历
数据结构与算法——4、队列的应用文件夹遍历package p3.实例应用;import java.io.File;//文件夹遍历public class DirectoryTraversal { public static void main(String[] args) { /* * 只要队列不为空 则出队一个目录对象 * 将该目录对象展开 开始遍历 遇到文件则打印名称 遇到其他目录 则进队 * */原创 2022-01-14 16:29:05 · 128 阅读 · 0 评论 -
数据结构与算法——4、队列的实现
数据结构与算法——4、队列的实现一、队列的定义1、定义2、图文演示二、Queue队列接口的定义三、ArrayQueue类1.定义2.代码演示一、队列的定义1、定义 队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 • 我们把允许删除的一端称为队首(front),插入的一端称为队尾(rear) • 不含任何数据元素的队列称为空队列 • 队列是一种先进先出(First In Last Out)的线性表,简称FIFO • 队列本身是一个线性表,其数据元素具有线性关系,只不过原创 2022-01-14 16:03:42 · 142 阅读 · 0 评论 -
数据结构与算法—5、双端队列的实现
数据结构与算法—双端队列的实现接口代码接口Dequeue接口package p1.接口;public interface Dequeue<E> extends Queue<E> { public void addFirst(E element); public void addLast(E element); public E removeFirst(); public E reomveLast(); public E getFirs原创 2022-01-14 20:18:15 · 139 阅读 · 0 评论 -
中缀表达式计算器
接前俩篇动态数组的博客内的代码实现的!!!!package p3.实例应用;import p2.线性结构.ArrayStack;import javax.swing.text.StyledEditorKit;/** * @Auther: wjw * @Date: 2022/1/10-01-10-16:53 * @Description: p3.实例应用 * @version: 1.0 *///中缀表达式且只适用于四则运算的计算器,public class InfixCalcula原创 2022-01-10 20:38:37 · 105 阅读 · 0 评论