各大平臺熱搜排行榜原型
前言:騰訊、新浪微博等平臺都有一個熱搜的功能,目的是讓使用者看到最近一段時間網友們都在搜尋什麼,以便實時掌握熱點資訊。熱搜排行榜的演算法其實非常簡單,用C語言就可以寫出來。
程式設計思想:每個被搜尋的詞條都是一個結構體,所有的被搜尋詞條構成了一個結構體陣列,也就是一個線性結構。被搜尋詞條這個結構體中有兩個成員變數,一個是用於存放搜尋次數的整形變數sum,sum要被賦初值為0;另一個是用於存放關鍵詞的字串key。
將每次使用者的輸入分成兩種情況,第一種情況是之前已經被搜尋過的關鍵詞,第二種情況則是之前從來沒有被搜尋過的關鍵詞。若是第一種情況則讓該詞條的搜尋次數自加1;若是第二種情況則要將新的使用者輸入作為新詞條儲存到由被搜尋詞條構成的結構體陣列中,並讓該新詞條的搜尋次數自加1,此時該新詞條的搜尋次數由初始化後的0變為1。
經過一系列的搜尋操作,每個被搜尋的詞條都有了一定的搜尋次數,最後運用選擇排序法或者其他排序演算法根據搜尋次數由多到少將詞條進行排序,一個熱搜排行榜便在不知不覺中形成了。
程式碼如下,需要注意的是根據使用者輸入情況的不同對被搜尋詞條數目num的操作:
#include <stdio.h> #include <stdlib.h> #include <string.h> //宣告結構體:詞條keyw typedef struct { //用於存放搜尋次數 int sum; //用於存放關鍵詞 char key[20]; }keyw; //num為被搜尋詞條的總數 int num=0; //被搜尋詞條的上限是1024條 keyw keywo[1024]; //自定義函式的宣告 void input(keyw *x,char str[],int *num); void show(keyw *x,int num); void main() { //choice為使用者的熱鍵 int choice; //keywords為使用者的輸入內容 char keywords[20]; //給所有被搜尋詞條的搜尋次數賦初值0 for(int i=0;i<1024;i++) keywo[i].sum=0; /*------------------------------啟用選單------------------------------*/ system("cls"); system("color f0"); do { //程式功能展示選單 printf("\t\t\t歡迎使用LittleBox搜尋引擎!\n"); printf("*************************************************************************\n"); printf("\n搜尋請輸入1\t\t檢視熱搜榜請輸入2\n\n"); printf("退出程式請輸入0\n\n"); printf("*************************************************************************\n"); printf("請輸入您的選擇:"); scanf("%d",&choice); fflush(stdin); switch(choice) { case 1: printf("請輸入搜尋關鍵詞:"); scanf("%s",keywords); //此時搜尋詞條數+1 若為被重複搜尋的關鍵詞 則在input函式中讓其值-1 num++; input(keywo,keywords,&num); break; case 2: show(keywo,num); break; case 0: printf("\n您已成功退出!\n"); //正常退出程式 exit(0); break; default: printf("\t\t\t對不起,您的選擇有誤,請重新輸入!\n"); } system("pause"); system("cls"); }while(1); } //自定義函式的實現 /* 傳入的引數為: 由所有被搜尋詞條構成的kwyw型(自定義型別)的線性結構 輸入的內容str 被搜尋詞條的總數num的地址 */ void input(keyw *x,char str[],int *n) { //flag用於判斷輸入的內容是否為被重複搜尋的關鍵詞 int flag=0; int i; for(i=0;i<(*n)-1;i++) if(strcmp(x[i].key,str)==0) { //此時使用者輸入為被重複搜尋的關鍵詞 //讓被搜尋詞條數-1 (*n)--; //該詞條的搜尋次數+1 x[i].sum++; flag=1; break; } if(flag==0) { //此時使用者輸入為新的關鍵詞 //將使用者輸入作為新詞條儲存到線性結構上 strcpy(x[*n-1].key,str); //讓新詞條的搜尋次數+1 x[*n-1].sum++; } } /* 傳入的引數為: 由所有被搜尋詞條構成的kwyw型(自定義型別)的線性結構 被搜尋詞條的總數num */ void show(keyw *x,int num) { int i,j; keyw t; //用選擇排序法根據搜尋次數由多到少將詞條進行排序 for(i=0;i<num-1;i++) for(j=i;j<num;j++) if(x[i].sum<x[j].sum) { t=x[i]; x[i]=x[j]; x[j]=t; } //輸出排序結果 printf("%20s%20s\n","排名","關鍵詞"); for(i=0;i<num;i++) printf("%20d%20s\n",i+1,x[i].key); }
以上程式碼的缺點是沒有動態分配和釋放記憶體,以及為了省事直接將被搜尋詞條的上限設定成了1024。不過大體上可以反映整個程式設計思想,程式碼中的註釋也很詳細。
程式效果:
搜尋關鍵詞“支付寶法人變更”1次
搜尋關鍵詞“劉強東回國”2次
搜尋關鍵詞“延禧攻略”3次
搜尋關鍵詞“香蜜大結局”4次
搜尋關鍵詞“京東客服”5次
搜尋關鍵詞“劉強東爆紅網路”6次
形成了如下圖所示的熱搜排行榜:
大家有什麼不懂的地方可以email我。
email:[email protected]
相關推薦
各大平臺熱搜排行榜原型
前言:騰訊、新浪微博等平臺都有一個熱搜的功能,目的是讓使用者看到最近一段時間網友們都在搜尋什麼,以便實時掌握熱點資訊。熱搜排行榜的演算法其實非常簡單,用C語言就可以寫出來。 程式設計思想:每個被搜尋的詞條都是一個結構體,所有的被搜尋詞條構成了一個結構體陣列,也就是一個線
了不起的 Deno:帶你極速獲取各大平臺今日熱榜
摘要:Deno 是一個 JavaScript/TypeScript 的執行時,預設使用安全環境執行程式碼,有著卓越的開發體驗。 有人的地方就有江湖,有江湖的地方就有爭論。前些天,繼《[譯]為什麼如今 Deno 正全面取代 Node.js》之後,又有了《【譯】Deno 已經死了嗎?》,也許這便是江湖。說回標題”
搭建互聯網+大平臺 天搜股份推動傳統行業升級
業界 而在 預約 百度 案例 人臉識別 type 結算 醫院 導語:得益於“互聯網+”的助力,健康醫療行業即將轉型升級,而作為“互聯網+”的實踐者,天搜股份也正在推動更多傳統行業的叠代。 你一定遇到過這樣的煩惱,去一趟醫院總是要反復檢查是否忘記帶×××、錢包和就診卡等等,
python爬蟲爬取各大平臺女主播圖片
目標: 各大直播平臺~~~(虎牙,熊貓,鬥魚,全民),內的女主播直播封面圖片. 所需掌握知識: re正則表示式的,os模組,urllib模組 剛剛將這幾個平臺的顏值區域女主播都爬了一遍,整體來說步驟大致相同,我們這裡就拿”虎牙直播”來做個示範,看懂之後,可以先去嘗試爬取”
微信小程式可以用到的各大平臺的免費介面
慕課網介面:https://www.imooc.com/course/ajaxlist 豆瓣: https://api.douban.com/v2/book/search?q= "百年孤獨"
各大平臺的免費介面
宣告:整理記錄,自己開發過程使用,請勿用做非法途徑!參考:http://developer.51cto.com/art/201412/458778.htm豆瓣:https://api.douban.com/v2/book/search?q= "百年孤獨"電商介面京東獲取單個商
國內各大互聯網公司相關技術博客3.0版 (集合騰訊、阿裏、百度、搜狐、新浪、網易、360等共29個)
hive 時間 視覺 阿裏媽媽 數據可視化 發的 電商 領域 事業 在2013-07-15 整理了一份國內各大互聯網公司相關技術站點2.0版 (集合騰訊、阿裏、百度、搜狐、新浪、360等共49個) 近日重新整理了一番,希望能對大家有所幫助 2013年 騰訊系列(13) 阿
gui采集淘寶列表商品[後期有空更新采集各大電商平臺]
accept lan time object nec nal stringvar ble amp import requestsfrom pymysql import *from tkinter import *window = Tk()window.title("淘寶列表
gui采集天貓列表商品[後期有空更新采集各大電商平臺]
lazyload var response cursor accep pri window esp return import requestsfrom lxml import etreefrom pymysql import *from tkinter import *
極限工坊淘小咖:各大電商平臺陸續入駐微信小程序,背後到底隱藏著什麽?
騰訊 cde 人工 連接 自己 資訊 img 一個 多人 微信小程序是一個低門檻的平臺,一個巨大流量的平臺,一個相對公平的優質平臺,隨著微信小程序的盈利風口已經開啟了,很多電商平臺也開始爭相入駐小程序,要知道做電商最重要的是流量,背靠著10億微信用戶,附近的店功能,公眾號的
銀行級資金安全股指交易平臺VEFX維億:全球各大股市指數介紹
推出 德國 藍籌 分別是 也會 參考 最快 國際投資 影響 近年來隨著VEFX維億被越來越多的投資者所接受,漸漸的在網上也開始變得知名起來,最近就有很多剛接觸到VEFX維億的投資者留言,讓我們解釋一下我們的VEFX維億具體的索引標準和具體參考指數,今天我們就此問題給予詳細的
上海寫字樓租賃大平臺-搜樓網(搜樓匯)
智能 房源 屬於 辦公 text 搭建 log 地產 pro 上海寫字樓租賃大平臺-搜樓網(搜樓匯)成立於2018年10月1日,隸屬於上海欣諳房地產經紀有限公司.是上海商務辦公室租賃平臺之一!搜樓匯以提升企業用戶租賃體驗和找房效率為核心原則,拒絕任何虛假和低質量的房源信息,
奇葩思路獲取各大視訊平臺收費資源,思維決定python爬蟲的應用高度!
說起利用Python可以隨意抓取收費資源就很激動,然而這確實是事實。 個人威信:1613161916 原創文章,未得同意切勿轉載! 20行程式碼即可爬取所有網頁的收費視訊,而且這種方法基本很少有人想得到。那麼我先給大家講一下思路,對於Python掌握的不錯的朋友根據我的思路
各大物聯網平臺對比
本文主要針對目前比較流行的物聯網平臺,進行功能的簡單總結與對比。目前來說,有以下幾種物聯網平臺比較流行,他們分別是:百度IoT平臺阿里物聯平臺QQ物聯平臺微信硬體平臺京東智慧雲機智雲慶科雲AbleCloud智慧雲 各平臺詳細介紹如下:慶科雲介紹百度IoT智慧雲平臺介紹阿里智慧雲平臺介紹京東
熱搜大記事【2018-11-26——2018-12-02】
2018年已經過去,但是我們不應該忘記過去的熱點事情,人們之前關注的熱點事情現在是否還有人記得,還是隻是作為一個談資像之前的很多事情都被忘卻了。 事件 熱搜數 時間 易烊千璽新歌 66133 2018-11
2011年七夕情人節各大搜索引擎logo一覽
今天是農曆七月初七(08月06日),七夕節。七夕,中國人自己的情人節,始終連著牛郎織女的美麗的傳說,一個古老的、讓每個人都為之心動的故事。不難發現,各大搜索引擎的logo也換了新裝,以表達對七夕情人節的祝福。你中意哪個logo呢?纖雲弄巧,飛星傳恨,銀漢迢迢暗渡。 金風玉露一相逢,便勝卻人間無數。 柔情似水,
開源專案哪家強?Github年終各大排行榜超級盤點(內附開源專案學習資源)
提到開源專案,2018 年註定是不平凡的一年。據 Octoverse 報告資料,僅在 2018 年,Github 上的新使用者就比過去六年的使用者總數還要多 ,儲存庫數量近一億,這些增長都要歸功於開源社群。 2018 年還有半月就要結束了,這一年,大家都學了些什麼?在 G
“數讀”各大電商平臺雙十一戰報
今日,各大電商平臺終極“戰報”出爐,宣告雙十一帷幕已落。 從十年前的淘寶獨自應對流量高併發的技術攻堅戰,到今年的共同防“黃牛”新課題的提出,雙十一也成為了電商平臺的技術大考。 技術同樣是F-One提供優質服務的保障:降低業務使用者對IT的重依賴,面對不同業務線紛繁複雜,靈
免費下載國內各大音樂平臺歌曲
2018年11月17日 18:15:51 keerod 閱讀數:11 個人分類: 雜項技能
ACM 各大OJ平臺以及題目分類
本文章轉自:http://blog.csdn.net/liujiuxiaoshitou/article/details/7 OJ是Online Judge系統的簡稱,用來線上檢測程式原始碼的正確性。著名的OJ有RQNOJ、URAL等。國內著名的題庫有北京大學