建立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...