前言:腾讯、新浪微博等平台都有一个热搜的功能,目的是让用户看到最近一段时间网友们都在搜索什么,以便实时掌握热点资讯。热搜排行榜的算法其实非常简单,用C语言就可以写出来。
编程思想:每个被搜索的词条都是一个结构体,所有的被搜索词条构成了一个结构体数组,也就是一个线性结构。被搜索词条这个结构体中有两个成员变量,一个是用于存放搜索次数的整形变量sum,sum要被赋初值为0;另一个是用于存放关键词的字符串key。
将每次用户的输入分成两种情况,第一种情况是之前已经被搜索过的关键词,第二种情况则是之前从来没有被搜索过的关键词。若是第一种情况则让该词条的搜索次数自加1;若是第二种情况则要将新的用户输入作为新词条存储到由被搜索词条构成的结构体数组中,并让该新词条的搜索次数自加1,此时该新词条的搜索次数由初始化后的0变为1。
经过一系列的搜索操作,每个被搜索的词条都有了一定的搜索次数,最后运用选择排序法或者其他排序算法根据搜索次数由多到少将词条进行排序,一个热搜排行榜便在不知不觉中形成了。
代码如下,需要注意的是根据用户输入情况的不同对被搜索词条数目num的操作:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//声明结构体:词条keyw
typedef struct
{
//