摘要: 计数排序的基本思想是:统计一个数序列中小于某个元素a的个数为n,则直接把该元素a放到第n+1个位置上。当然当过有几个元素相同时要做适当的调整,因为不能把所有的元素放到同一个位置上。计数排序假设输入的元素都是0到k之间的整数。// 8-2.计数排序.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; ... 阅读全文
posted @ 2015-07-16 23:13 程序员修练之路 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 变长一维数组 这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: //文件名: array01.cpp #include using namespace std; int main() { int len; cin>>len; //用指... 阅读全文
posted @ 2015-07-16 22:54 程序员修练之路 阅读(1460) 评论(0) 推荐(0) 编辑
摘要: 这一节决策树其实是对前面的堆排序,快排等是最优的比较算法的证明, 首先说下《算法导论》上对决策树的定义:一棵决策树是一棵满二叉树(注意看下面解释),表示某排序算法作用于给定输入所做的所有比较,而控制结构,移动等都被忽略了。 注意:这里个人认为定义是错误的,决策树不是一棵满二叉树,连完全二叉树都不是。 首先看看只有三个元素时,决策树的图: 在决策树中,每个内结点都用i:j表示比较下标为i数组元素与... 阅读全文
posted @ 2015-07-16 21:17 程序员修练之路 阅读(371) 评论(0) 推荐(0) 编辑