如何理解算法时间复杂度的表示法,例如 O(n²)、O(n)、O(1)、O(nlogn) 等?
LRU Cache - Linked list LUC 缓存机制
Redis - Skip List:跳跃表、为啥 Redis 使用跳表(Skip List)而不是使用 Red-Black?
递归
# Python
def recursion(level, param1, param2, ...):
# recursion terminator
if level > MAX_LEVEL:
process_result
return
# process logic in current level
process(level, data...)
# drill down
self.recursion(level + 1, p1, ...)
# reverse the current level status if needed
// Java
public void recur(int level, int param) {
// terminator
if (level > MAX_LEVEL) {
// process result
return;
}
// process current logic
process(level, param);
// drill down
recur( level: level + 1, newParam);
// restore current status
}
// C/C++
void recursion(int level, int param) {
// recursion terminator
if (level > MAX_LEVEL) {
// process result
return ;
}
// process current logic
process(level, param);
// drill down
recursion(level + 1, param);
// reverse the current level status if needed
}
// JavaScript
const recursion = (level, params) =>{
// recursion terminator
if(level > MAX_LEVEL){
process_result
return
}
// process current level
process(level, params)
//drill down
recursion(level+1, params)
//clean current level status if needed
}