摘要: 某些东西,如果讲理论的话会太抽象,我们应该采取形象化的方法来简述一些知识,这样可以让别人易于接受。箱排序是什么呢?首先,说下其特征,准备n个箱子,对每个记录,查看其关键字,然后直接放到与其关键字相同的箱子中。我们举个例子。我们玩扑克牌的时候。需要按点数排序。扑克牌有13张牌,我们可以准备13个箱子。然后每拿到一张牌,就插入到这13个箱子中的一个。箱子的数据结构:因为我们不确定这个箱子里会有多少确定的相同的记录成员,所以我们应该把其设置为链表类型。说完上面的东西,我们说下箱排序的一种变种(姑且称之为桶排序吧,虽然堆 排序和箱排序是一样的东西。)我们准备一个【0,1】区间。并将其平均分成n分,即n 阅读全文
posted @ 2013-10-27 15:19 zhbit-liushuojin 阅读(219) 评论(0) 推荐(0)
摘要: 排序是数据处理中一种非常重要的运算。广泛应用于各计算机应用系统,在算法分析中也占有较大的比重。排序的对象可以是文件,也可以是记录或者仅为一种数据类型。当对象 为文件时,其由记录组成,而记录又由多条数据项组成。我们对文件或记录进行排序时就是按某一关键字(记录中的某一数据项)的顺序进行排序,以满足我们的各种需求。PS:一般可以唯一标记一组记录的数据项就称为关键字,但有时候根据其他需要我们可能要根据其他数据项对文件或记录进行排序。论排序的稳定性一组记录中的关键字中,如果各不相同,则排序的结果一定是唯一的,如果关键字有相同的,那么排序就可能出现多种结果怎么评价一种排序算法的稳定性呢?我们知道,排序前, 阅读全文
posted @ 2013-10-21 15:16 zhbit-liushuojin 阅读(186) 评论(0) 推荐(0)
摘要: 首先,是写出一个递归的树生成以及结点插入二叉树的递归算法。#includestruct tree{int data;tree *lchild;tree *rchild;};void insert(tree *t,int key){if(t==NULL){t=new tree;t->lchild=t->rchild=NULL;t->data=key;return;}if(keylchild->data)insert(t->lchild,key);elseinsert(t->rchild,key);}void creattree(tree *t,int a[], 阅读全文
posted @ 2013-10-19 13:49 zhbit-liushuojin 阅读(138) 评论(0) 推荐(0)