行业知识
C++十大经典算法案例
2026-10-30 08:21:43
来源:互联网转载
文章目录
- 1. **排序算法**:
- 2. **搜索算法**:
- 3. **图算法**:
- 4. **动态规划**:
- 5. **贪心算法**:
- 6. **树与图算法**:
- 7. **字符串处理算法**:
- 8. **位运算算法**:
- 9. **数学相关算法**:
- 10. **���据结构算法**:
1. 排序算法:
- 冒泡排序:
void bubbleSort(int arr[], int n) { for (int i = 0; i arr[j + 1]) swap(arr[j], arr[j + 1]);} - 快速排序:
int partition(int arr[], int low, int high) { int pivot = arr[high]; int i = (low - 1); for (int j = low; j if (arr[j] x) return binarySearch(arr, l, mid - 1, x); return binarySearch(arr, mid + 1, r, x); } return -1;}3. 图算法:
- Dijkstra最短路径算法(仅核心逻辑):
priority_queue pq;vector dist(n, INT_MAX); // 初始化距离数组dist[src] = 0;pq.push({0, src}); // 将源点加入优先队列while (!pq.empty()) { int u = pq.top().second; pq.pop(); for (auto& edge : adj[u]) { int v = edge.first; int weight = edge.second; if (dist[v] > dist[u] + weight) { dist[v] = dist[u] + weight; pq.push({dist[v], v}); } }}4. 动态规划:
- 最长公共子序列(LCS):
string lcs(string X, string Y, int m, int n) { int L[m + 1][n + 1]; for (int i = 0; i for (int j = 0; j if (i == 0 || j == 0) L[i][j] = 0; else if (X[i - 1] == Y[j - 1]) L[i][j] = L[i - 1][j - 1] + 1; else L[i][j] = max(L[i - 1][j], L[i][j - 1]); } } // 回溯构造LCS字符串,此处省略... return lcsString;} sort(activities.begin(), activities.end()); vector if (activities[i].first = end) { result.push_back(i); end = activities[i].second; } } return result;} int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};void preorderTraversal(TreeNode* root) { if (root == NULL) return; cout right);}7. 字符串处理算法:
- KMP算法匹配子串:
void computeLPSArray(string pat, int M, vector& lps) { int len = 0; lps[0] = 0; int i = 1; while (i8. 位运算算法:
- 判断一个整数是否为2的幂:
bool isPowerOfTwo(int n) { return n > 0 && (n & (n - 1)) == 0;}9. 数学相关算法:
- 计算斐波那契数列:
long long fibonacci(int n) { if (n next = prev; prev = current; current = next; } head = prev; return head; } ```python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)
50个开发必备的Python经典脚本(11-20)
50个开发必备的Python经典脚本(21-30)
50个开发必备的Python经典脚本(31-40)
50个开发必备的Python经典脚本(41-50)
————————————————
最后我们放松一下眼睛
- 计算斐波那契数列:
- 判断一个整数是否为2的幂:
- KMP算法匹配子串:
- 最长公共子序列(LCS):
- Dijkstra最短路径算法(仅核心逻辑):
- 冒泡排序:
下一篇:香港的vps怎么样?