JAVA中Prime算法的原理和实现

Prime算法是一种构造最小生成树的方法,属于贪心算法。它通过不断寻找与当前树中节点权重最小的边来扩展树,直到包含所有节点。文章介绍了如何在JAVA中实现Prime算法,包括构建连通图的数组表示,并给出了算法实现过程的详细步骤。
摘要由CSDN通过智能技术生成

Prime算法:是一种穷举查找算法来从一个连通图中构造一棵最小生成树。利用始终找到与当前树中节点权重最小的边,找到节点,加到最小生成树的节点集合中,直至所有节点都包括其中,这样就构成了一棵最小生成树。prime在算法中属于贪心算法的一种,贪心算法还有:KruskalDijkstra以及哈夫曼树及编码算法。

下面具体讲一下prime算法:

1、首先需要构造一颗最小生成树,以及两个节点之间的权重数组,在此我们用一个二维数组来代表这样一个连通图的形式。节点就是0~数组长度-1,10000代表节点本身,权重 >= 100代表两个节点不连通,反之连通。
构建连通图代码如下:

    // 初始化连通图
    public static void initGraph(int[][] graph, ArrayList<Integer> points) {
        for(int i = 0 ; i < graph.length; i++) {
            points.add(i);
            for(int j = 0; j < graph[i].length; j++) {
                if(i == j) {
                    graph[i][j] = 10000;
                }else {
                    int temp = (int)(Math.random() * 200 +1);
                    graph[i][j] = temp; // 大于等于100不连通, 小于100连通
                }
                graph[j][i] = graph[i][j];
            }
        }
    }

连通图的数组表示:

控制台打印数组

2、找到距离当前树中节点权重最小的边,开始节点随机产生,(算法的重点)!!!

    // prime算法实现
    public static int prime(int[][] graph, ArrayList<Integer> points, int current) {
        String path = "";
        ArrayList<Integer> selectPoints = new ArrayList<Integer>();  // 选中的点集合
        int totalWeights = 0;   //  权重总和
        selectPoints.add(current);  // 添加初始开始节点
        points.remove(current); // 从未选择的节点集合中删除被选中的节点
        path = "|" + current + "|";
        System.out.println("当前路径:" + path);
        System.out.println("当前已选中节点: " + selectPoints.toString());
        System.out.println("当前剩余节点: " + points.toString());
        System.out.println("当前总权重: " &
java实现Prim算法
南 墙
07-22 1万+
1 问题描述 何为Prim算法? 普里姆算法(Prim算法),图论的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现;并在1957年由美国计算机科学家罗伯特·普里...
Java贪心算法Prime算法原理实现方法详解
08-29
主要介绍了Java贪心算法Prime算法原理实现方法,简单描述了Prime算法的概念、原理实现与使用技巧,需要的朋友可以参考下
Java数据结构和算法)最小生成树---prime算法
ccnuacmhdu的博客
11-24 990
参考博文 public class Main { public static void main(String[] args){ int inf = 1000000;//无穷大 //图,可以这样认为:图的任意两个顶点之间都有边,两顶点无法到达的,可以认为他们之间的边权是无穷大 int[][] graph = { {inf, 6, 1, inf}, {6, inf,...
Primes --JAVA
titi2018815的博客
11-12 404
题目: Write a program to read in a list of integers and determine whether or not each number is prime. A number, n, is prime if its only divisors are 1 and n. For this problem, the numbers 1 and 2 are ...
Prime(素数)判定 (java
liuwenyou的博客
09-07 1700
素数定义:大于1,且只有1和它本身两个因数,即不能写成n=p*q(p、q均不为1) 判定算法: 方法一:根据定义从2到n-1,依次判断n是否能整除,如果都不能则为素数 private boolean isPrime(int m){ for(int i=2;i<m;i++){ if(m%i==0){ retur...
Java 使用prim算法生成迷宫
m0_71181165的博客
01-06 648
使用prim算法生成迷宫,Java编写。
java-Hash算法大全.doc
最新发布
09-20
本文将对 Java 的哈希算法进行详细的介绍,包括加法哈希、旋转哈希、一次一个哈希、Bernstein 哈希、Pearson 哈希、CRC 哈希、Universal 哈希等七种哈希算法实现原理。 一、加法哈希(Additive Hash) 加法...
Java求质数的几种常用算法分析
08-26
本文主要介绍了Java求质数的几种常用算法,并结合实例形式分析了三种比较常见的求质数算法原理及相关实现技巧。 一、根据质数的定义求质数 质数的定义是:只能被1或者自身整除的自然数(不包括1)。利用它的定义...
Prime算法
曹营
11-30 1482
#include #include using namespace std; void prime(bool a[], const int n); int main() { int n; bool a[1000000]; cin >> n; prime(a,n); for(int i=0;i<n;i++) if(a[i] == true) cout << i << " "
Prime.java
10-06
判断一个数是否为素数,这是一个java小程序
Prime算法
08-27
选择合适的存储结构表示一个图,并实现下列运算要求: (1)构造一个带权值的图。 (2)根据图求解Prime算法,其基本思想是:从指定定点开始作为起点,然后反复在满足如下条件的边选择一条最小边,直到所有顶点成为已选顶点为止(选择n-1条边)。满足的条件是:一端已选,一端未选。
最小生成树的prime算法
12-07
最小生成树的prime算法(MATLAB)
prime算法
chchlh的专栏
12-06 1192
prime算法的基本思想 1.清空生成树,任取一个顶点加入生成树 2.在那些一个端点在生成树里,另一个端点不在生成树里的边,选取一条权最小的边,将它和另一个端点加进生成树 3.重复步骤2,直到所有的顶点都进入了生成树为止,此时的生成树就是最小生成树 kruskal算法: 构造一个只含n个顶点,而边集为空的子图,若将该子图各个顶点看成是各棵树的根节点,则它是一个含有n棵树的森林 。
【数据结构 | Java】Prim 算法Java版)
qq_49150070的博客
03-09 931
Prim 算法 Java
java prime_Java贪心算法Prime算法原理实现方法详解
weixin_35698091的博客
02-18 1412
本文实例讲述了Java贪心算法Prime算法原理实现方法。分享给大家供大家参考,具体如下:Prime算法:是一种穷举查找算法来从一个连通图构造一棵最小生成树。利用始终找到与当前树节点权重最小的边,找到节点,加到最小生成树的节点集合,直至所有节点都包括其,这样就构成了一棵最小生成树。prime算法属于贪心算法的一种,贪心算法还有:Kruskal、Dijkstra以及哈夫曼树及编码算法...
Prim算法JAVA实现
澈彻策的博客
08-30 884
1.算法思想 设有向图G的顶点集合为V={1,2,...,n},初始选择一个顶点加入 “已选集合”S,选择连接S与V-S集合的最短边e=(i,j),其i∈S,j∈V-S,将e加入树T,j加入S,一直执行上述操作直到S=V为止。 2.JAVA代码 static int MAX = Integer.MAX_VALUE; static void prim(int[][]
Prim 算法 Java实现
assiduous_me的博客
01-05 894
import java.util.Arrays; class MST{ int startVertex; int endVertex; int length; boolean sure = false; public MST(int startVertex, int endVertex, int length) { this.sta...
prime算法详解
jia1506的博客
11-25 1736
 #include  #include  #include  #include  #include  using namespace std;  #define INF 0x3f3f3f3f  #define MAXN 110  int map[MAXN][MAXN], lowcost[MAXN];  bool visit[MAXN];  int nodenum, sum;    voi
Java实现D-H密钥交换算法的模拟
资源摘要信息:"d-h DH算法基于Java实现的示例,专注于描述Diffie-Hellman(迪菲-赫尔曼)密钥交换算法实现方式和其工作原理。Diffie-Hellman算法是一种允许双方在不安全的通道上协商共享密钥的加密方法,这个密钥...
36
原创
14
点赞
16
收藏
9
粉丝
关注
私信
写文章

热门文章

  • JAVA-快速查找算法 7810
  • swift设置导航栏的颜色和字体 5547
  • swift手动导入OC的第三方库 4764
  • Swift中使用随机数 4433
  • JAVA中Prime算法的原理和实现 3223

分类专栏

  • JAVA 9篇
  • Android
  • IOS 24篇
  • Swift 7篇
  • 3rd(第三方插件) 2篇
  • ios基础 3篇
  • ios控件 6篇

最新评论

  • UICollectionViewLayout

    iApp123: 我也万州的 可否留个联系方式 一起交流学习

  • UICollectionViewLayout

    iApp123: 老哥 万州的呀

  • 《JAVA》中利用《动态规划》实现《背包》问题

    Mr.洛洛: 喜换请点赞哇。

最新文章

  • UICollectionViewLayout
  • 修改UITextField的placeholder颜色
  • 多线程+网络
2016年20篇
2015年24篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家秦皇岛玻璃钢雕塑哪家强泉州玻璃钢海豚雕塑厂家经济实惠的玻璃钢花盆定制玻璃钢造型雕塑安徽酒店玻璃钢雕塑大名玻璃钢花盆花器南平玻璃钢抽象雕塑水景校园玻璃钢雕塑定做厂家户外玻璃钢卡通雕塑价格红太狼玻璃钢雕塑鹤岗广场玻璃钢雕塑北京走廊商场美陈批发价商场生态绿色美陈比赛三门峡不锈钢马玻璃钢彩绘雕塑湖北玻璃钢仿铜雕塑安宁玻璃钢雕塑设计与制作加工玻璃钢动物雕塑厂家现货玻璃钢人物雕塑视频玻璃钢雕塑的保存时间河北商场主题创意商业美陈报价成都环保玻璃钢雕塑制作里水玻璃钢人物雕塑在线下单玻璃钢不锈钢雕塑制作衢州景观玻璃钢雕塑定做价格溧阳商场中庭美陈越城玻璃钢雕塑厂家浙江省玻璃钢雕塑选哪家安徽玻璃钢仿真水果雕塑定制丰都玻璃钢游乐场门头雕塑玻璃钢木桶雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化