Python tutorial 27 | Greedy

阿嬤
Feb 28, 2022

--

前言

我回來了,今天來讓大家如何成為時間管理大濕

原理

雅敗!今天要跟好多學妹學姊約會,怎麼辦!忘記排時間了,啊!我可以寫Greedy程式啊!以下是我約學妹的時間:

Kally學妹: 8:00 ~ 10:00

Ashely學姊 :9:00 ~11:00

Jane學姊: 10:00 ~ 12:00

Tiffany學妹: 12:00 ~ 13:00

KIWI學弟: 11:00 ~ 13:00

假如今天我約了Kally去看電影那麼我不就跟Ashely撞時間了嗎,來問問演算法吧!

好耶!他幫我整理如果結束時間大於或等於開始時間時,那麼他就會把與相撞的時間排除,換下一個對象,這樣我就可以知道要放鳥誰了!

程式

def greedy(course):
''' 約會的貪婪演算法 '''
length = len(course)
course_list = []
course_list.append(course[0])
course_end_time = course_list[0][1][1]
for i in range(1, length):
if course[i][1][0] >= course_end_time:
course_list.append(course[i])
course_end_time = course[i][1][1]
return course_list
course = {'Tifanny':(12, 13),
'Ashely':(9, 11),
'Kally':(8, 10),
'Jane':(10, 12),
'KIWI':(11, 13),
}
cs = sorted(course.items(), key=lambda item:item[1][1])
print('所有的約會時間排序如下')
print('對象', ' 開始時間', ' 結束時間')
for i in range(len(cs)):
print("{0:>10s}{1:7d}:00{2:8d}:00".format(cs[i][0],cs[i][1][0],cs[i][1][1]))
s = greedy(cs)
print('約會排程時間如下')
print('對象', ' 開始時間', ' 結束時間')
for i in range(len(s)):
print("{0}{1:7d}:00{2:8d}:00".format(s[i][0],s[i][1][0],s[i][1][1]))

總結

知道怎麼成為時間管理大師了嗎!雖然我知道這樣做挺沒意思的但恭喜你又理解一個演算法了!

--

--

阿嬤
阿嬤

Written by 阿嬤

歡迎來到湯阿嬤的帝國,如果對體制外的學生的學習精華就來這裡吧,想了解一個體制外學生的日常嗎?想了解繪畫相關的知識嗎?而且,如果有對繪畫有任何的挫折或者阻礙這裡最適合你們!或許你會覺得這裡只是一個憨批在這裡發一些沒有意義的文,但其實,我才是國中生喔!!所以有對這裡有興趣的話,就來這裡吧!

No responses yet