基礎演算法(一)

2021-10-20 14:58:11 字數 840 閱讀 4023

口訣

選泡插,

堆歸快希桶計基,

恩方恩老恩恩一三,

對恩加k恩乘k,

不穩穩穩不穩穩,

不穩不穩穩穩穩。

最簡單但是最沒用的排序演算法,也有優化空間。

先區域性後整體

先粗糙後精細

public

class

selectionsort

;//selectionsort(arr);選擇排序

selectionsortwithoutnote

(arr);}

static

void

selectionsortwithoutnote

(int

arr)

//n-1)+n-2)+···+1=n*(n-1)/2=n^2/2-n/2-->o(n^2)

//忽略低次項忽略常數項}}

printarr

(arr);}

static

void

swapwithoutnote

(int

arr,

int i,

int j)

static

void

printarrwithoutnote

(int

arr)

}

肉眼觀察不足以證明演算法的正確性。可以使用對數器,產生足夠多的樣本,用確定正確的演算法計算樣本結果,來對比被驗證的演算法結果。

演算法基礎(一) 基礎

學習了那麼久,一直沒有好好寫寫演算法。下面我簡單描述一下演算法方面知識。在已證明演算法正確性的前提下,評價演算法的好壞主要是關注演算法在時間和 空間上效能的優劣。演算法時間效能 的分析是通過計算 演算法時間複雜度 實現的,其關鍵就是計算演算法的執行時間。乙個演算法的執行時間,就是演算法中每條語句的執...

演算法基礎 一

一些有用的演算法 數值演算法,比如隨機化 分解因式 處理質數 數值積分 熟練操作常見的資料結構的方法,比如堆 樹 平衡樹 b數 排序和搜尋 網路演算法,比如最短路徑 生成樹 拓撲排列和流計算 一些常規的問題解決技巧 暴力或者窮舉搜尋 分治法回溯法 遞迴分支界限 貪心演算法和爬山法 最小花費演算法 縮...

演算法基礎(一)

博主這幾天面試總會被問到演算法相關知識,關鍵博主面試的是西安測試崗位,現在測試門檻都這麼高了嗎。各種手撕演算法 那就先從最基本開始看吧 一 時間複雜度計算 時間複雜度 定性描述該演算法的執行時間 這種只執行一次的,時間複雜度為o 1 這種執行n次的,時間複雜度為o n 當然如果前面是執行一次的,後面...