日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發(fā)布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python计算四元素组合算法_python – 算法,列表元素之间的最近点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這種方法是一種強力方法,但使用類似于Dijkstra算法的消除方法,這導(dǎo)致了更少的情況(使得算法最有可能快幾個數(shù)量級,特別是對于大型列表或大量列表).告訴我你是否理解它,我可以澄清一下.可以在此處找到實現(xiàn):https://github.com/nerryoob/closestPoint

你正在做的是列出不同的數(shù)字組合(即答案)?一開始最好(索引0),最后最差,反之亦然,看看效果最好.您將僅為第一個輸入列表創(chuàng)建結(jié)果列表,完全忽略其他列表.當(dāng)然,對于一個列表,所有項目都是解決方案 – 它們的總差異為0.所以只需將第一個輸入列表復(fù)制到結(jié)果列表中

接下來,可能使用while循環(huán),請遵循此算法.取最上面的項目并從結(jié)果列表中彈出它.存儲它的價值.轉(zhuǎn)到下一個輸入列表,對于下一個輸入列表中的每個項目,復(fù)制剛剛彈出的頂部項目,該項目還包含下一個輸入列表的項目.找到新的整體差異,并將基于此的新項目插入到列表中.重復(fù),直到頂級解決方案中包含所有列表.這意味著您保證您擁有最佳解決方案(至少是第一個),同時在組合上花費的時間少得多,這顯然不是解決方案

>示例(

括號中的數(shù)字是總差異)

[14,48]

[14,13,72]

[1,24]

結(jié)果列表為[14(0),22(0),36(0),48(0)]

>看看14.插入新數(shù)字[14和14(0),

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

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

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

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

>查看22.插入新數(shù)字[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)]

繼續(xù)重復(fù),你最終得到22,24.因為它包含所有n個列表,所以您可以停止并回復(fù)答案

要優(yōu)化它:

>刪除重復(fù)項

>也許以某種方式利用有序列表

>考慮一下您在哪里放置具有相同總差異的項目,也許首先有更多數(shù)字的項目

編輯:

算法復(fù)雜度為O(n ^ 2)

總結(jié)

以上是生活随笔為你收集整理的python计算四元素组合算法_python – 算法,列表元素之间的最近点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。