面試基礎演算法

2021-10-23 05:20:41 字數 1128 閱讀 1878

面試常問的幾種簡單的演算法和**:單例模式、快排、二分查詢

單例模式()

dcl,double check lock,屬於懶漢模式

public

class

singlemodel

//獲取物件的唯一途徑

public

static singlemodel getinstance()

}}return instance;

}}

快速排序

快速排序的最壞時間複雜度和冒泡一樣o(n^2),平均複雜度為o(nlogn),分為遞迴實現和非遞迴實現。

//遞迴實現

public

void

quicksort

(int

a,int low,

int high)

//必須放在判斷之後,否則溢位

int temp = a[low]

while

(iwhile

(temp >= a[i]

&& iif(i < j)

} a[low]

= a[i]

; a[i]

= temp;

quicksort

(a,low,i-1)

;quicksort

(a,i+

1,high)

;}

二分查詢

二分查詢使用條件是,陣列必須有序。時間複雜度為log2(n)

//陣列不能有重複,否則報錯

public

intbinsearch

(int

a,int value)

if(a[mid]

< value)

if(a[mid]

== value)

}return-1

;}

面試基礎演算法整理 冒泡演算法

1.演算法原理 氣泡排序演算法的原理如下 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。4.持續每次對越來越少的元素重複上面的步驟,直到沒...

面試基礎演算法整理 選擇排序

面試基礎演算法整理 選擇排序 1.演算法原理 n個記錄的直接選擇排序可經過n 1趟直接選擇排序得到有序結果。具體演算法描述如下 1.初始狀態 無序區為r 1 n 有序區為空 2.第i趟排序 i 1,2,3 n 1 開始時,當前有序區和無序區分別為r 1 i 1 和r i 該趟排序從當前無序區中選出關...

演算法面試學習 python基礎 1

1.資料型別 1 整數 長度不受限制 運算子 加 減 乘 除 乘方 求餘 整除 向下取整。2 浮點數 存在上下限,會出現溢位 小數點後包含17位 3 math中的一些函式 4 字串 三引號 可表示多行字串 5 如何列出模組中的函式 2.編寫程式 1 從鍵盤輸入 name input 輸入內容 輸入的...