这种方法是一种强力方法,但使用类似于Dijkstra算法的消除方法,这导致了更少的情况(使得算法最有可能快几个数量级,特别是对于大型列表或大量列表).告诉我你是否理解它,我可以澄清一下.可以在此处找到实现:https://github.com/nerryoob/closestPoint

你正在做的是列出不同的数字组合(即答案)?一开始最好(索引0),最后最差,反之亦然,看看效果最好.您将仅为第一个输入列表创建结果列表,完全忽略其他列表.当然,对于一个列表,所有项目都是解决方案 – 它们的总差异为0.所以只需将第一个输入列表复制到结果列表中

接下来,可能使用while循环,请遵循此算法.取最上面的项目并从结果列表中弹出它.存储它的价值.转到下一个输入列表,对于下一个输入列表中的每个项目,复制刚刚弹出的顶部项目,该项目还包含下一个输入列表的项目.找到新的整体差异,并将基于此的新项目插入到列表中.重复,直到顶级解决方案中包含所有列表.这意味着您保证您拥有最佳解决方案(至少是第一个),同时在组合上花费的时间少得多,这显然不是解决方案

>示例(

括号中的数字是总差异)

[14,48]

[14,13,72]

[1,24]

结果列表为[14(0),22(0),36(0),48(0)]

>看看14.插入新数字[14和14(0),

48(0),14和23(9),14和30(16),14和72(58)]

>看看14& 14.插入新数字[22(0),48(0),14和

14和18(8),14和14和24(20),14

和14和1(26),14和72(58)]

>查看22.插入新数字[36(0),22和23(1),14

和14和18(8),22和14(8),22和30(8),14和30

(16),14和14和1(26),22和72(50),14

和72(58)]

继续重复,你最终得到22,24.因为它包含所有n个列表,所以您可以停止并回复答案

要优化它:

>删除重复项

>也许以某种方式利用有序列表

>考虑一下您在哪里放置具有相同总差异的项目,也许首先有更多数字的项目

编辑:

算法复杂度为O(n ^ 2)

python计算四元素组合算法_python – 算法,列表元素之间的最近点相关推荐

  1. python列表元素交换位置_python删除列表元素5种方法,你会的是错误法还是最优解?...

    删除列表元素很多同学想当然的认为不就是循环遍历加上if判断再del吗?真的有这么简单吗? 还是直接上代码看案例吧: import time# 删除下面列表中所有张姓元素,输出的结果应该是['李老大', ...

  2. python的栈在哪个库_Python算法实战系列之栈

    栈(stack)又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作. 如下图所示 例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最后一 ...

  3. python入门算法_Python 算法入门教程

    分治算法介绍 今天我们聊一聊计算机中非常重要和常用的一种算法:分治算法.它在计算机领域应用广泛,几乎无处不在.不仅计算机领域,在信号处理领域,分而治之也是十分常见的一种信号处理方法.著名快速傅里叶变换 ...

  4. python计算三角形面积_【Scratch算法编程】计算三角形面积

    [问题]已知一个三角形三条边的边长分别为a,b,c,利用海伦-秦九韶公式设计一个计算三角形面积的算法.(已知三角形三边边长分别为a b c,则三角形的面积为S= ),其中p= .这个公式被称为海伦-秦 ...

  5. python计算坐标点欧式距离_Python计算一个点到所有点的欧式距离实现方法

    Python计算一个点到所有点的欧式距离实现方法 如下所示: distances = np.sqrt(np.sum(np.asarray(airportPosition - x_vals)**2, a ...

  6. python计算sinx近似值的程序_python编程计算sinx-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 python 字符串,数值 计 ...

  7. python列表转换成数字_Python中列表元素转为数字的方法分析

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...

  8. python集合的元素可以是_Python集合的元素中,为什么不可以是包含嵌套列表的元组?...

    你有一个误解,hash算法针对的是元素的内容,并不是针对指针,所以指针不变不等于可hash. 如果你想深究细节的话,可以看tuple的源码: static Py_hash_t tuplehash(Py ...

  9. python数字排序_python按照列表元素中的数字大小排序

    [Human Sorting] 常见的python排序只需要一个sort或者sorted函数即可.但是默认采用的是字典序,这会带来一个问题,如果列表中的元素是字符串+数字组合,往往无法得到我们想要的排 ...

  10. python 计算召回率的程序_python实现计算精度、召回率和F1值

    python实现计算精度.召回率和F1值 摘要:在深度学习的分类任务中,对模型的评估或测试时需要计算其在验证集或测试集上的预测精度(prediction/accuracy).召回率(recall)和F ...

最新文章

  1. python模块os测试文件是否存在及基础原信息获取
  2. 大学计算机基础课程报告python-大学计算机基础
  3. 2.27 18种定位方法总结
  4. geotools读取shp文件及shp文件操作工具类代码
  5. catkin_make与gtest出现冲突的问题与解决
  6. 《Linux4.0设备驱动开发详解》笔记--第三章:Linux下的C编程特点
  7. Linux GCC简明教程(编写c语言程序)
  8. (四)Netty之Buffer缓冲区
  9. MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
  10. python写脚本的优势_python写脚本的优势玩被叫
  11. css设置div垂直居中
  12. 1.1 PMBOK指南的目的 -- 项目管理知识体系指南(PMBOK指南)(第五版)
  13. 黑马“兔年限定”春节礼盒准时送达,快来领!
  14. 大数据小结(1-4)
  15. 脉冲宽度调制 matlab,关于PWM脉冲宽度调制的点滴总结
  16. C语言求解距多个点最短长度,算法设计技巧与分析课后习题答案沙特
  17. ASM原理详解,以及使用附代码,AOP利器
  18. AdminLTE2 框架的使用
  19. libjpeg用法linux压缩,安装libjpeg库
  20. SAP_销售发票VF01开放可人工修改定价金额

热门文章

  1. 国民技术芯片相关产业研发
  2. 单精度和半精度混合训练
  3. MindSpore平台系统类
  4. Lidar激光雷达与Radar雷达
  5. 2019个嵌入式市场研究,持续的C/C++优势
  6. 定制语音代理(智能体)的背后是什么?
  7. YOLOV4各个创新功能模块技术分析(三)
  8. php7安装执行configure报错error: off_t undefined; check your library configuration
  9. CentOS7的node.js安装
  10. Python:Scrapy Shell