前言
我回來了,今天來讓大家如何成為時間管理大濕
原理
雅敗!今天要跟好多學妹學姊約會,怎麼辦!忘記排時間了,啊!我可以寫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_listcourse = {'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]))
總結
知道怎麼成為時間管理大師了嗎!雖然我知道這樣做挺沒意思的但恭喜你又理解一個演算法了!