![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论学习笔记
文章平均质量分 82
疯狂的红豆
拥有热情相信未来
展开
-
插入排序(直接插入,折半插入,希尔)
插入排序直接插入排序// 直接插入排序void DirectInsertSort(int arr[], int lhs, int rhs){ int temp; for (int i = lhs+1; i <= rhs; ++i) { temp = arr[i]; int j = i - 1; @1 while (j >= 0 && temp < arr[j]原创 2014-06-04 20:26:09 · 1624 阅读 · 0 评论 -
快速排序
常规快速排序快速排序的优化原创 2014-06-05 02:18:56 · 3473 阅读 · 0 评论 -
归并排序
// 归并排序 void Merge1(int arr[], int p, int mid, int r) { int n1 = mid - p + 1; int n2 = r - mid; int *pLeft = new int[n1](); int *pRight = new int[n2](); for (int i = 0; i < n1; ++i) {原创 2014-06-05 18:44:52 · 1205 阅读 · 0 评论 -
堆排序
堆排序// 测试堆排序 // @start:调整的起点 // @end:调整的终点,在堆排序的过程中,不断地减小调整区间,end参数起作用 void SiftDown(int arr[], int start, int end) { int i = start; int j = 2*i + 1; // j记录的是i结点的左孩子 int temp = arr[i];原创 2014-06-05 19:51:11 · 1244 阅读 · 0 评论