小結下目前的查詢演算法和排序演算法。
查詢演算法:
1、順序查詢:遍歷元素,逐個和要查詢的key比較
2、二分查詢:先排序,然後通過中間數來縮小查詢範圍。
排序演算法:
1、氣泡排序:相鄰元素挨個比,大的放到後邊,有點順序查詢的感覺。(遍歷)
2、選擇排序:從無序區中直接選擇乙個最小的元素(這個過程就是有點像冒泡,把最小的數冒出來)和無序區的第乙個元素交換位置。
3、插入排序:將無序區的第乙個元素,插入到有序區的合適的位置(這個過程是將有序區的元素和無序區的第乙個元素挨個進行比較,從後往前比。其實就相當於順序排序的過程,無序區的第乙個元素就是key然後挨個和有序區的元素比較。)最後將無序區的第乙個元素放到最後被移走的有序區中的元素的那個位置。
實現**
/**
* 時間複雜度:t(n) = o(n)
* 空間複雜度:s(n) = o(1)
* @param arr
* @param key
* @return
*/public
static
intdirectsearch
(int
arr,
int key)
return-1;}}
測試類
一文讀懂最簡單的資料結構 陣列
專欄目錄 資料結構與演算法解析 定義 有序的元素序列,陣列是用來儲存具有 一對一 邏輯關係的資料的線性儲存結構,由於在各種程式語言中常把陣列作為基本資料型別來使用,很多人會誤解陣列不是儲存結構。通常我們根據不同的結構特性將陣列分為三類 一維陣列,二維陣列和多維陣列 儲存 n 1 維陣列的陣列,不做過...
一文讀懂之資料結構之二分查詢 迴圈遞迴實現)
二分搜尋 折半查詢法binarysearch 使用二分法的要求 1 被搜尋的數列必須是線性有序 序號 的數列。比如陣列。2 被搜尋的數列必須是公升序的 降序 時間複雜度 t n o log2n 空間複雜度 s n o 1 實現思想 通過兩個變數 low 待搜尋區域的最小下標,一開始是0 high 帶...
一文讀懂之Cookie和Session
cookie和session是為了解決http協議無狀態特性而產生的.換句話講,cookie和session就是為了儲存請求和響應過程中的資料的.cookie是儲存在客戶端的,session是儲存在伺服器端的.1.1 概念 cookie,餅乾.是儲存在客戶端的少量資訊.cookie是乙個類,在ser...