常數時間的操作:乙個操作如果和資料量沒有關係,每次都是固定時間內完成的操作,叫做常數操作。
時間複雜度為乙個演算法流程中,常數運算元量的指標。常用o(big o)來表示。具體來說,在常數運算元量的表示式中只要高階項,不要低階項,也不要高階項的係數,剩下的部分記為f(n),那麼時間複雜度為o( f(n) )。
評價乙個演算法流程的好換,先看時間複雜度的指標,然後再分析不同資料樣本下的實際執行時間,也就是常數項時間。
各種排序演算法:
public
static
void
bubblesort
(int
arr)
for(
int e = arr.length -
1; e >
0; e--)}
}}//交換位置
public
static
void
swap
(int
arr,
int i,
int j)
public
static
void
insertionsort
(int
arr)
for(
int i =
1; i < arr.length; i++)}
}
選擇排序:定義乙個存放最小值的變數,遍歷陣列,取出最小的值的下標,與第一位交換,同時不再參與遍歷,依次取出最小值排序。
public
static
void
selectionsort
(int
arr)
for(
int i =
0; i < arr.length -
1; i++
)swap
(arr, i, minindex);}
}
插入 冒泡 選擇排序 區分O n 2
這三個排序都是 n 方,然而我老是記錯他們之間的名字,到時候考研卷子上寫錯了就涼涼 謹以此部落格紀念我傻傻分不清楚他們的名字的歲月。助記 從後向前插入,前面已有序 從前向後遍歷,假設當前遍歷的是第 i 個元素,那麼前 i 1個已經有序,然後再將當前這個與前面的元素倒著回去比較,直到遇到比第 i 個小...
演算法之排序 插入排序O n 2
目錄 1.走讀插入排序 演算法複雜度o n 2 空間複雜度o 1 2.插入排序特性 3.以下兩段 4.優缺點比較 排序之後的前n個元素是有序的 一 int sort insert int a,int size a j temp j i printf temp d,moved d n temp,n p...
3種簡單排序演算法 冒泡,選擇,插入排序
1.氣泡排序 就是從最左邊開始,重複地訪問要排序的數列,一次比較兩個元素,如果他們的順序錯誤,就把他們交換。通過一次次的比較,越大的元素會通過交換慢慢 浮 到數列的頂端,故名 冒泡 是穩定的排序演算法。實現 1.常規實現 public class bubblesort 臨時儲存資料 int temp...