电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python實現貪心算法的示例

瀏覽:92日期:2022-06-23 15:17:01

今天一個研究生同學問我一個問題,問題如下:超市有m個顧客要結賬,每個顧客結賬的時間為Ti( i取值從1到m)。超市有n個結賬出口,請問全部顧客怎么選擇出口,可以最早完成全部顧客的結賬,并用代碼實現。其實利用的就是貪心算法來解決這個問題,那么,什么是貪心算法?怎么用貪心算法解決這個問題?讓我一一道來。

一、貪心算法簡介

貪心算法是一種對某些求最優解問題的更簡單、更迅速的設計技術。貪心算法的特點是一步一步地進行,常以當前情況為基礎根據某個優化測度作最優選擇,而不考慮各種可能的整體情況,省去了為找最優解要窮盡所有可能而必須耗費的大量時間。貪心算法采用自頂向下,以迭代的方法做出相繼的貪心選擇,每做一次貪心選擇,就將所求問題簡化為一個規模更小的子問題,通過每一步貪心選擇,可得到問題的一個最優解。雖然每一步上都要保證能獲得局部最優解,但由此產生的全局解有時不一定是最優的,所以貪心算法不要回溯 。

二、解決思路1.同學導師給的思路

可以先讓前N個人付款 后邊顧客不斷找出付款時間最短的依次排到前N個顧客按時間最長到最短的后邊

2.問題分解

可以先假設只有一個收銀臺,那么我們可以很快的反應過來,最優的順序就是按時間由小到大依次進行。即最優解為A={t(1),t(2),….t(n)}(其中t(i)為第i個用戶需要的服務時間),則每個用戶等待時間為:T(1)=t(1);T(2)=t(1)+t(2);…T(n):t(1)+t(2)+t(3)+……t(n);那么總等待時問,即最優值為:TA=n*t(1)+(n-1)*t(2)+…+(n+1-j)t(i)+…2t(n-1)+t(n);

三、算法代碼實現

有了上邊的分解,那么實現算法代碼就非常的輕而易舉了`

def greedy(customer_list, n): # customer_time_list為第j個隊列上的某一個顧客的等待時間 # sum_customer_time_list是求和數組 # sum_customer_time_list[j]的值為第j個隊列上所有顧客的等待時間 # min_sum_customer_time為結賬最小時間 # 初始化一個大小為n的0列表 customer_time_list = [] sum_customer_time_list = [] num = 0 while num < n: customer_time_list.append(0) sum_customer_time_list.append(0) num += 1 min_sum_customer_time = 0 # 顧客的數量 m = len(customer_list) customer_list.sort() #列表升序排序 i = 0 j = 0 while i < m: customer_time_list[j] += customer_list[i] sum_customer_time_list[j] += customer_time_list[j] i += 1 j += 1 # 如果j到了最后一個結賬出口,重新歸零 if j == n: j = 0 # 匯總最小總時間 k = 0 while k < n: min_sum_customer_time += sum_customer_time_list[k] k += 1 return min_sum_customer_time四、算法測試結果

準備一個顧客排隊序列和指定收銀臺數量,得到最小時間

customer_list = [6, 5, 3, 4, 2, 1]print(greedy(customer_list, 2))

Python實現貪心算法的示例

五、算法復雜性分析

程序主要是花費在對各顧客所需服務時間的排序和貪心算法,即計算平均服務時間上面。其中,貪心算法部分只有一重循環影響時間復雜度,其時間復雜度為O(n):而排序算法的時間復雜度為O(nlogn)。因此,綜合來看算法的時間復雜度為O(nlogn)。

以上就是Python實現貪心算法的示例的詳細內容,更多關于Python實現貪心算法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 不锈钢螺丝,不锈钢螺栓,不锈钢标准件-江苏百德特种合金有限公司 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 北京遮阳网-防尘盖土网-盖土草坪-迷彩网-防尘网生产厂家-京兴科技 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 今日扫码_溯源二维码_产品防伪一物一码_红包墙营销方案 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 宜兴市恺瑞德环保科技有限公司 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 名律网-法律问题咨询-找律师-法律知识| 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 |