logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Kruskal算法和Prim算法(Java)

而且最小生成树的特点是不能形成环,通过判断两个节点不连通就可以巧妙的满足这一点(例如:1-2,2-3,3-4,通过判断1和4是否联通,发现已经联通了,就不会进行成环的操作,也就是不会进行4-1,保证了最小生成树的特征)[解释:当中间某一轮的时候发现新节点没有满足条件的邻居节点的时候,就没办法更新权值,当新的一轮开始的时候,就找不到最小权值,导致cur没变,仍然是-1,说明该图没办法连通,也就是没办

文章图片
#算法#java#数据结构
拓扑排序(Java)

1.代码拓扑排序可以判断是否有环并查集可以判断无向图是否有环先建图,度为0的节点直接入队列,处理队列中的节点,更新邻居节点的度,度 - -;且count++;最后比较count(count是 总共进入队列中的节点个数)和 n的值,若count==n 说明是有向无环图,否则就是出现count<n的情况也就是有向有环图。(为什么count<n呢?因为成环的那几个节点你指我我指你,度不可能为0,就没办法

文章图片
#java#开发语言#算法 +1
交换排序:冒泡排序 vs 快速排序(Java)

对比项冒泡排序快速排序最好时间复杂度O(n)O(n log n)最坏时间复杂度O(n²)O(n²)(随机化后极少出现)平均时间复杂度O(n²)O(n log n)空间复杂度O(1)O(log n)稳定性✅ 稳定❌ 不稳定数据量大时慢快数据基本有序时快(优化版)反而可能慢(固定基准)冒泡排序:简单、稳定、适合小数据,优化版对基本有序数据友好。快速排序:高效、不稳定、适合大数据,随机选基准避免了最坏情

文章图片
#java#排序算法#算法
归并排序(Java)

分治:先分成两半分别排序,再合并两个有序数组。

文章图片
#java#排序算法#算法
Dijkstra算法(朴素版&堆优化版)Java

我怎么知道题目是节点少边少、节点少边多、节点多边少、节点多边多呢这个问题问得非常实际!。我直接给你一套,不用分析复杂度,扫一眼题目就能决定用哪个算法。

文章图片
#算法#数据结构
插入排序(Java)

插入排序的直接插入排序 → 折半插入排序 → 希尔排序基础版优化比较次数突破 O(n²)而「2路插入排序」是折半插入的一种变体,实际很少用,我最后提一下。

文章图片
#排序算法#java#数据结构
堆排序(Java)

建大顶堆 → 堆顶最大值换到末尾 → 剩余部分重新堆化 → 重复。

文章图片
#java#算法#数据结构 +1
Java中方法带参

这是没有返回值的,而方法带参就是改变void为基本数据类型,带上返回值。这里的show方法就是方法带参返回了return total;方法无参就是public void show(){ }首先我们知道在写方法时。例如:任意整数的阶乘。

文章图片
#java
到底了