摘要: #include using namespace std; namespace mySort { void qSort(int * data, int left, int right) { if (left >= right) return; int i = left; int j = right + 1; while (i data[left]); ... 阅读全文
posted @ 2014-08-21 21:12 旧客图新 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 选择排序算法原理不再多说,用下图或则代码比较好理解: 时间复杂度:O(N*N) 阅读全文
posted @ 2014-08-21 21:08 旧客图新 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1、 冒泡排序基本思想 交换相邻两个数,如果不满足排序条件,那么就交换。每一次遍历数组后,那么最后一个元素必然是最大(小)的元素。如:{4,3,5,1},按照从大到小排序。 排序范围【0~3】,橙色为需要交换的元素,红色为当前排序范围的最大元素。 后面是两种改进算法,请读者慢慢体会。 时间复杂度 算 阅读全文
posted @ 2014-08-21 20:56 旧客图新 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 1、什么是堆? 堆实际上是一棵完全二叉树,任何一个父节点都大于其左右两个子树(如果有子树的话)。完全二叉树的性质还包括了父节点与直接子节点的关系。Index(父)=[Index(子)-1]/2 最大堆:Key[i]>=Key[2i+1]&&key>=key[2i+2];堆顶关键字最大。 最小堆:Ke 阅读全文
posted @ 2014-08-21 20:37 旧客图新 阅读(215) 评论(0) 推荐(0) 编辑