
算法导论
薛离子
假如我年少有为不自卑
展开
-
归并排序
归并排序利用了分治法的思想,算法时间复杂度O(nlogn),空间复杂度为O(n)。原创 2016-09-10 14:01:15 · 316 阅读 · 0 评论 -
二叉树建树、递归遍历、非递归遍历
/* * BinaryTree.h */ #ifndef BINARYTREE_H #define BINARYTREE_H#include <fstream> #include <iostream> using namespace std;struct BinTreeNode { int val; BinTreeNode *leftChild; BinTreeNode原创 2016-12-26 08:52:08 · 683 阅读 · 0 评论 -
快速排序算法
第7章 快速排序 摘要: 快速排序是一种排序算法,对包含n个数的输入数组,最坏情况运行时间为O(n2)。由于平均性能比较好,期望的运行时间为O(nlgn),且O(nlgn)记号中隐含的常数因子很小,快速排序通常用于排序的最佳的实用选择。 7.1 快速排序的描述 快速排序是基于分治模式构思的,具体描述如下: 分解:数组A[p..r]被划分成两个(可能空)子数组A[p..q-1原创 2014-08-03 23:02:59 · 909 阅读 · 0 评论 -
再谈快速排序
本篇博客是在快速排序基础上优化的。算法思想快速排序是基于分治模式构思的,具体描述如下: 分解:数组A[p..r]被划分成两个(可能空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每个元素都小于等于A(q),而且,小于等于A[q+1..r]中的元素。下标q也在这个划分过程中进行计算。 解决:通过递归调用快速排序,对子数组A[p..q-1]和A[q+1..r]排序。 合并:因原创 2017-08-06 17:06:27 · 369 阅读 · 0 评论