![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
文章平均质量分 65
希望在哪
生活需要希望
展开
-
快速排序&易错点
#include using namespace std;int partition(int* arr, int p, int q){ int pivot = arr[p]; while (p < q) // while中统一使用p < q 而不是p <= q { while(pivot <= arr[q] && p < q) q--; arr[p] = arr[q];原创 2015-07-19 21:55:35 · 695 阅读 · 0 评论 -
归并排序C++
#include using namespace std;/* *把数组从中间分为2部分,分别将两部分排好序后,调用merge将2个有序序列合并成1个有序序列 * */void merge(int* arr, int start, int mid, int end){int* p = new int[1000];int* q = new int[1000];for(int i = start; i原创 2015-07-19 22:31:57 · 427 阅读 · 0 评论 -
堆排序(算法导论实现)
#include #include using namespace std;int heap_size;int left(int i){ return 2 * i + 1;}int right(int i){ return 2 * i + 2;}void exchange(vector& v, int k, int largest){ int temp = v[k];原创 2015-07-22 20:57:05 · 540 阅读 · 0 评论 -
二叉树的前序、中序、后续遍历,递归、非递归实现
前序遍历递归:#include #include using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};void pre_order_recursive(TreeN原创 2015-07-22 15:47:06 · 545 阅读 · 0 评论