提公升查詢和排序的效率

2022-08-26 22:51:18 字數 1974 閱讀 4985

查詢演算法:普通查詢,二分查詢,插值查詢,二叉樹查詢.

排序演算法:氣泡排序,插入排序,希爾排序,快拍排序.

普通查詢:for迴圈:

例如: listgetdata()

else if (i < 5 * 1024 * 2)

else

}return list;

}listlist = p.getdata();

stopwatch sw = new stopwatch();

sw.start();

for (int i = 1; i < list.count; i++)

}sw.stop();

console.writeline(sw.elapsed);

氣泡排序:

例如:listswap(listlist, int i, int j)

private int privation(listlist, int low, int high)

swap(list, low, high);

while (low < high && priotkey >= list[low])

swap(list, low, high);

}return low;

}排序 冒泡

listbulletsort(listlist)}}

return list;

} listlistsort = p.bulletsort(list); // 15000 1.29

查詢二分:

static int binary_search(listlist, int n, int key)

else if (key > list[mid])

else

}return 0;

}listlistsort1 = p.quicksort(list, 0, list.count - 1); // 15000 0.13

console.writeline(binary_search(listsort1, listsort1.count, 652)); // 15000 0.18

快排:listquicksort(listlist, int low, int high) // 0 15359

return list;

}listlistsort1 = p.quicksort(list, 0, list.count - 1); // 15000 0.13

兩種用於非泛型集合:

(1)轉換類cast():將物件轉換成泛型(返回可被列舉的物件)或規定型別.

mscorlib核心技術-->system.collections集合.

enqueue(object)-->將物件新增到system.collections.queue的結尾處.

dequeue-->移除並返回位於system.collections.queue開始出的物件.

stack-->後進先出,堆載型成(表示物件的簡單的後進先出非泛型集合).

(2)dt.rows.asqueryable將物件轉換成泛型或規定型別.

文字檔案查詢:file.readalllines("檔名") where !line.startswith("#");-->捨棄第一行

let parts=line.split(',') select new {};

注釋:let相當於into.

設計模式:foreach操作符=>相當於select投影到另乙個物件,傳統的foreach只是迭代,而foreach操作符可以對源序列中的每個元素進行遍歷並執行某一傳統操作.

分頁(分割槽):skip跳過多少條資料.take取多少資料.

序列:ienumberable.range()--->生成指定範圍內連續的整數的序列.

非託管資源:database(資料庫)需釋放資源,ef實體框架,office(com物件),gdi(繪圖).

擴充套件管理器--->聯機庫更新--->nuget(程式表管理器).

資料庫查詢提公升查詢效率

在乙個千萬級別的資料庫查詢中,提公升查詢效率方法 對查詢優化,要盡量避免全表掃瞄,首先考慮在where和orderby涉及的列上建索引 應盡量避免在where字句中對null值進行判斷,否則導致引擎放棄索引而進行全表掃瞄,如 select id from t where num is null,可以...

提公升CSS的效能和效率

樣式表,修改後改變名稱,防止瀏覽器快取,使使用者不能瀏覽最新改變的 每次提交要修改名字 font italic bold 1em 140 lucida grande sans serif 至少要定義font size和font family 父代選擇器效率比子代選擇器高 盡量避免萬用字元選擇器,正規...

提公升測試效率和質量

商業目標 專案生命週期管理 專案組織模型 專案整體管理 價值管理 風險管理 範圍管理 時間管理 質量管理 目標成本管理 財務管理 人力資源管理 採購管理和專案文化管理。對測試管理來說,有些知識域是需要特別關注的,主要是價值管理 風險管理 範圍管理 時間管理和質量管理,因為這些知識域和測試有直接關係。...