1.快速排序(排序演算法中的重點)不穩定排序
public
void
quicksort
(int arr,
int low,
int high)
if(arr[end]
<=key)
while
(end>start&&arr[start]
<=key)
if(arr[start]
>=key)}if
(start>low)
if(end}
2.leetcode236給定乙個二叉樹,求樹中兩個指定節點的最先公共祖先。
public treenode lowestancestor
(treenode root,treenode p,treenode q)
if(left!=null)
return left;
if(right!=null)
return right;
return null;
}
3.求陣列中最長連續序列,輸出為長度。例如[1,200,2,45,3,4],則最長連續子串行是[1,2,3,4],輸出長度為4.
方法一:暴力解法,時間複雜度為n平方
class
soultion
longest=math.
max(currentsum,longest);}
return longest;
}private
boolean
arraycontains
(int
arr,
int num)
}return
false;}
}
方法二:存於hashset中,我們僅對當前數字-1的數字判斷若不在陣列中則作為連續序列裡的第乙個數字對找對應的最長序列。時間複雜度最低為n。
public
intlongestconsecutive
(int
nums)
int longest=0;
for(
int num:set)
} longest=math.
max(currentsum,longest);}
return longest;
}
3.執行緒列印迴圈abc
public
class
threadprint
implements
runnable
@override
public
void
run(
)try
catch
(exception e)}}
}public
static
void
main
(string[
] args)
}
MD5演算法常見坑
問題1.md5演算法設定返回32位加密字元,結果返回31位字元 原因 一般是少0,就是少了乙個0,具體原因是 integer.tohexstring t 0xff 當t為14時,十六進製制就是0e,轉化成字串會忽略掉前導零 解決辦法 string s integer.tohexstring t 0x...
常見排序演算法總結 5 選擇排序
5 選擇排序 將陣列中待排序的元素中最小 大 的元素取出,放在陣列中已排序的元素序列的末尾,直至陣列中沒有待排序的元素 舉例 分析 對於n個元素的陣列,進行了 n 1 次選擇,每次選擇進行了 n 1 1次比較,平均每次選擇了n 2次,一共比較了n n 1 2次 邏輯 首先做乙個i 0 i n的迴圈a...
5種常見排序演算法的完整實現
預處理指令 include include include define n 201 插入排序 void insert sort int aa 插入排序 2 選擇排序 void select sort int aa 選擇排序 3 氣泡排序 void bubble sort int aa 氣泡排序 4...