算法分类总结

时间:2022-12-07 13:58:29

一、实习:

1. 实习日记:图像检索算法 LSH 的总结与分析(matlab)

2. 实习日记:图像检索算法 LSH 的总结与分析

 

二、数组类

 1. [数组赋值] 已知数组 A[n], 求数组 B[n]。其中,B[i] = A[0] * ... * A[i-1] * A[i] * ... * A[n] 。(要求:不能用除法;时间 O(n), 空间 O(1))

void getElemOfB(int *B, int *A, int n) {
B[0] = 1;
for(int i = 1; i < n; ++i)
B[i] = A[i-1] * B[i-1];
int tmp = 1;
for(int i = n-2; i >= 0; --i) {
tmp *= A[i+1];
B[i] *= tmp;
}
}

 2. [数组统计] 已知整型数组 A[n] 中的元素范围为 1~n,统计 1~n 中的数字各出现多少次。(要求:时间 O(n), 空间 O(1))

void repeats(int A[], int n) {
for(int i = 0; i < n; ++i) {
if(A[i] % n == 0) A[i] -= n; /* 本身存的为 n */
A[A[i] % n] += n;
}
for(int elem = 1; elem <= n; ++elem)
printf("elem = %d, occurs = %d\n", elem, A[elem % n] / n);
}

 3. [数组去重] LeedCode 题解: 50

 4. [数组归并 && 单值

 5. [数组建堆]数组建堆堆排序

 6. [树状数组]

 7. [并查集]

 8. [位图]

 9. [字符串数组] KMP编辑距离

10.[排列组合]

 

三、链表类

 

 

四、图类

 

 

 

五、哈希