文字檔案記錄了使用者搜尋資訊,找到前top 10資訊

2021-08-28 15:59:17 字數 2445 閱讀 3310

建立trie樹,記錄每顆樹的出現次數,o(n*le); le:平均查詢長度

維護乙個10的小頂堆,o(n*lg10);

總複雜度: o(n*le) + o(n*lg10);

#include #include #include #define word_num          256

struct trie_node ;

struct heap_node ;

void adjust_heap(struct heap_node *h, int len, int pos);

void create_heap(struct heap_node *h, int len);

void heap_sort(struct heap_node *h, int len);

int heap_insert_node(struct heap_node *h, int len, struct heap_node n);

void heap_insert_word(struct heap_node *h, int len, char *word, int count);

void destroy_heap(struct heap_node *h, int len);

void show_top_ten_word(struct heap_node *h, int len);

struct trie_node *create_trie_node(int value);

int trie_insert_word(struct trie_node *root, unsigned char *word);

void destory_trie_tree(struct trie_node *root);

void adjust_heap(struct heap_node *h, int len, int pos)

if ( h[mark].count > h[l].count)

if (r < len && h[mark].count > h[r].count)

if (mark != pos) }

void create_heap(struct heap_node *h, int len) }

void heap_sort(struct heap_node *h, int len) }

void heap_insert_word(struct heap_node *h, int len, char *word, int count) }

/* 不需要插入堆中和已經存在堆中 return -1, 插入返回 0 */

int heap_insert_node(struct heap_node *h, int len, struct heap_node n)

for (i = 0; i < len; i++)

} if (i == len)

else

}void destroy_heap(struct heap_node *h, int len)

free(h);

h = null;}

void show_top_ten_word(struct heap_node *h, int len)}

struct trie_node *create_trie_node(int value)

int trie_insert_word(struct trie_node *root, unsigned char *word)

root = n;

word++;

} root->count++;

return root->count;

}void destroy_trie_tree(struct trie_node *root)

for (i = 0; i < word_num; i++)

free(root);}

int main(int argc, char *argv)

root = malloc(sizeof(struct trie_node));

heap_len = 10;

h = calloc(heap_len, sizeof(struct heap_node));

fp = fopen(argv[1], "r");

if (fp == null)

int start = 0;

while (fgets(line, sizeof(line), fp))

}if (i == start)

} else

} fclose(fp);

heap_len = start;

show_top_ten_word(h, heap_len);

destroy_heap(h, heap_len);

destroy_trie_tree(root);

return 0;

}

原文

ubuntu把終端資訊輸出到文字檔案中的方法

方法一 把終端中所有資訊都寫到文字檔案中 在你需要執行東西之前,在終端的命令列中輸入以下命令 script f output.txt之後在輸入你自己要執行的命令 直到你在按ctrl d之前,在命令視窗執行的所有命令包括終端輸出的所有資訊都會寫道output.txt檔案中。方法二 把終端執行某一命令後...

從文字檔案讀取登入資訊的簡單方法

這是我的第乙個教程,所以如果有任何錯誤,請原諒我 這將為您展示一種非常簡單的方法,可從外部文字檔案中讀取登入資訊。您需要什麼 1.在專案中新增乙個新的 登入對話方塊 表單。2.完全清除其中的 但保留介面。3.建立乙個文字檔案,其中一行一行地列出您的使用者名稱和密碼。username1 passwor...

請教 關於使用文字檔案記錄資料慢的問題

軟體使用文字檔案來記錄資料,前些天以客戶反映,資料寫入時間太長,能不能設定不記錄資料,因為之前測試的時候,測試400個點的資料,寫入的時間也就在1秒鐘的樣子,而客戶實際寫入是需要到一分半鐘。起初以為是不是系統的問題,因為給客戶配置的是膝上型電腦,使用的win10家庭版的系統,而之前一直使用的是win...