選擇乙個合適的資料結構會對程式的效能有著顯著的提高
線性表和鍊錶:
1、linkedlist:適合於元素陣列不固定,存在大量列表的頭尾新增動作場合。其它可使用list。
2、arra:元素數量固定,需要用到檢索(即索引器)。
3、list:元素數量不固定,需要用到索引器。
棧和佇列(只有在模擬棧和佇列時才考慮):
1、stack (stack):當需要實現 lifo(last in first out)時。
2、queue (queue):當需要實現 fifo(first in first out)時。
雜湊(需要大規模查詢):
1、hash table (dictionary):當需要使用鍵值對(key-value)來快速新增和查詢,並且元素沒有特定的順序時。有了泛型版本的字典,我們幾乎永遠不需要使用非泛型的hashtable。
2、tree-based dictionary (sorteddictionary):當需要使用鍵值對(key-value)來快速新增和查詢,並且元素總是需要根據key來排序時。
集合(儲存一組唯一的值/模擬集合運算):
1、hash table based set (hashset):當需要儲存一組唯一的值,並且元素沒有特定順序時。
2、tree based set (sortedset):當需要儲存一組唯一的值,並且元素總是需要排序時。
樹:
參考風口上的豬.net面試系列文章
選擇排序 C語言資料結構
include include void swap int p1,int p2 void select sort int a,int n 函式功能 使用選擇排序法進行排序 從小到大 函式原型 void select sort int a,int n 函式引數 int a 陣列名 int n 排序元素...
資料結構 直接選擇排序(c )
straightselectsorter.h 直接選擇排序類 include sorter.h template record class straightselectsorter public sorter 直接選擇排序,array為待排序陣列,n為陣列長度 template record voi...
資料結構 選擇排序
選擇排序是一種比較直觀的排序方法 選擇排序的思想在於 預設公升序排序 在乙個陣列當中,選擇這個陣列當中最小的元素,將這個元素放在第一位,然後尋找第二小的元素,將這個元素放在第二位。以此類推,直到將這個陣列完成排序。這是乙個比較直觀的排序方法 選擇排序 演算法思想 在遍歷陣列的時候 找出陣列當中最小的...