資源簡介 (共15張PPT)項目挑戰:學校微課平臺推薦功能設計LOREM IPSUM DOLOR總結評價1項目任務根據項目任務構建模型2編程實現合理使用數組、鏈表解決實際問題分別用數組、和鏈表實現3推薦算法學校新建了一個微課平臺,用來展示校內教師和學生自制的微課。為了更好地服務師生,學校想增加微課平臺的推薦功能,即當某個用戶點播了某個微課后,平臺會依據一定的規則推薦相關的微課。假如你作為平臺的設計者,現在需要你來開發實現這個微課平臺的推薦功能。項目任務推薦規則1:以用戶類型做推薦,如用戶類型是“高一”,則推薦點播次數最多的前n個高一課程推薦規則2:以微課類型做推薦,如微課類型是“語文”,則推薦點播次數最多的前n個語文課程提問:你對以上兩個推薦規則有什么看法,能提出自己設計的推薦規則嗎?推薦規則根據你的推薦規則,所設計的數據特點是什么?選擇數組還是鏈表來實現?先談談數組和鏈表各自的特點吧!數據結構選擇數組優點:因為連續存儲,可以隨機存取元素,實現方便數組缺點:空間大小固定,易浪費空間。插入和刪除操作較浪費性能(可能會產生大量元素的移動)數據結構選擇鏈表優點:空間利用靈活鏈表缺點:存取麻煩每次存取需要從頭節點(head)開始搜索數據結構選擇編程實現語言編程工具types=input("輸入年級")lst中一個元素內容如:[[姓名,年級,微課類型]]代碼略dic={}#初始化空字典for i in range(n):if lst[i][1]==types:if lst[i][2] not in dic:dic[lst[i][2]]=1else:dic[lst[i][2]]+=1第一步:統計每個視頻的點播次數數組法實現推薦規則1menu=[[0,0]]*4for i in range(4):for key,values in dic.items():if dic[key]>menu[i][1] and [key,values] not in menu:menu[i]=[key,values]第二步:按點播次數多少排列數組法實現推薦規則1運行程序數組法實現推薦規則1鏈表法實現構建字典dic,以課程名為鍵(key),點播次數為值(value)for key,values in dic.items():menu.append([key,values,p])p+=1menu[-1][2]=-1第一步:初始化,構建無序鏈表def linksort(lst):head=0;cur=lst[head][2] ; pre=headwhile cur!=-1:lst[pre][2]=-1;p=headnt=lst[cur][2];v=lst[cur][1]if v>lst[head][1]:lst[cur][2]=head;head=curelse:while v<=lst[p][1] and p!=-1:q=p;p=lst[p][2]lst[q][2]=cur; lst[cur][2]=pif p==-1:pre=curcur=ntreturn head第二步:對鏈表進行插入排序鏈表法實現head=linksort(menu)rclnk(menu,head,5)第三步:輸出鏈表中播放次數較多的前n位def rclnk(lst,head,n):i=1while lst[head][2]!=-1 and iprint(lst[head],end="→")head=lst[head][2]i+=1lst[head][2]=-1print(lst[head],end="→")print("None")鏈表法實現評價 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫