我正在瀏覽單詞列表,如果某單詞符合特定條件,它將被打印到屏幕上。棘手的一點是單詞按字母順序打印到屏幕上的順序。這樣做的最好方法是什麼?我猜想首先對列表進行排序會效率低下,所以我會選擇一個鏈接列表,但很遺憾c doesn't have one :(按字母順序從列表中打印某些單詞
2
A
回答
1
最好的方法是在打印出來之前對單詞進行排序C提供了一個排序函數,稱爲qsort()
。它適用於陣列,以及需要傳遞的比較功能。下面是一個使用qsort()
排序的int
陣列的一個例子。
static int cmp_int (const void *a, const void *b);
//...
int arr[] = { 2, 4, 6, 1, 3, 5 };
qsort(arr, sizeof(arr)/sizeof(*arr), sizeof(*arr), cmp_int);
訣竅正確地實現cmp_int()
是要認識到的類型比較功能接收與&arr[0]
類型相同。由於arr
是一個數組int
,這意味着cmp_int()
將收到int *
類型。如果第一個參數小於第二個參數,則該函數應該返回負值,如果第一個參數大於第二個參數,則返回正值,否則返回0。
static int cmp_int (const void *a, const void *b) {
const int *aa = a;
const int *bb = b;
return (*aa > *bb) - (*aa < *bb);
}
+0
+1不錯的經典緊緻解決方案。 – chux
相關問題
- 1. 按字母順序排列單詞列表並按首字母順序篩選
- 2. 按字母順序打印陣列
- 3. 按字母順序排列單詞
- 4. 按字母順序排列單詞
- 5. 打印字母順序列表
- 6. Python:按照字母順序排列的單詞排序列表
- 7. 從單詞表和打印單詞中搜索字母
- 8. 如何按字母順序打印BST?
- 9. 需要按照字母順序打印5列表,垂直
- 10. 查看單詞列表並計算按字母順序排列的單詞
- 11. 按字母順序排列字符串中的單詞
- 12. 按特定順序過濾包含一些字母的單詞
- 13. 按字母順序排序字典,並按頻率打印
- 14. 如何按字母順序排序字符串中的單詞
- 15. 按字母順序排序,然後按字母順序排列
- 16. 如何只打印某些字母
- 17. 按字母順序排列結構體打印在標籤上
- 18. 按字母順序排列Wordpress列表
- 19. 按字母順序排列2D列表?
- 20. 按字母順序排列列表項
- 21. C:按字母順序排列列表
- 22. 按字母順序排序列表
- 23. 按字母順序排序列表
- 24. 將列表按字母順序排序
- 25. 按字母順序排序列表
- 26. 按字母順序排列的鏈表不按順序排列
- 27. 如何從二進制搜索樹按字母順序打印?
- 28. Python - 在同一行上按順序打印字母表
- 29. 安排在按字母順序C++中的列表中的所有單詞
- 30. Shell腳本 - 哪個單詞首次按字母順序排列?
http://www.cplusplus.com/reference/cstdlib/qsort/ –
除非它是一個很長的名單,排序可能是最好的辦法,並採取很少的時間。 – lurker
只需對它們進行排序即可。實際情況是,即使你不打電話給你,但是要完成你的任務,你仍然要對它們進行排序。附: C有一個鏈表......數以百萬計。 – Duck