VC++2012编程演练数据结构《34》树形选择排序

树形选择排序(Tree Selection Sort)
  树形选择排序又称锦标赛排序(Tournament Sort),是一种按照锦标赛的思想进行选择排序的方法。首先对n个记录的关键字进行两两比较,然后在n/2个较小者之间再进行两两比较,如此重复,直至选出最小的记录为止。

  这个过程可用一棵有n个叶子结点的完全二叉树表示。例如,图表2中的二叉树表示从8个数中选出最小数的过程。8个叶子结点到根接点中的关键字,每个非终端结点中的数均等于其左右孩子结点中较小的数值,则根结点中的数即为叶子结点的最小数。在输出最小数之后,割据关系的可传递性,欲选出次小数,仅需将叶子结点中的最小数(13)改为“最大值”,然后从该叶子接点开始,和其左(或右)兄弟的数值进行比较,修改从叶子结点到根的路径上各结点的数,则根结点的数值即为最小值。同理,可依次选出从小到大的所有数。由于含有n个子结点的完全二叉树的深度为log2n+1,则在树形选择排序中,除了最小数值之外,每选择一个次小数仅需要进行log2n次比较,因此,它的时间复杂度为O(nlogn)。但是,这种排序方法尚有辅助存储空间较多、和“最大值”进行多余比较等缺点。为了弥补,威洛姆斯(J. willioms)在1964年提出了另一种形式的选择排序——堆排序。

打开IDE


创建一个工程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python深度学习项目演练是通过使用Python编程语言来构建、训练和评估深度学习模型的过程。这个项目演练可以帮助我们理解深度学习的基本概念和算法,并提供实际应用的实践经验。 在开始Python深度学习项目演练之前,我们需要掌握Python编程语言的基础知识和深度学习的基本概念。Python是一种简单易学且功能强大的编程语言,拥有丰富的库和工具,特别适合用于机器学习和深度学习项目。 在项目演练的过程中,我们需要选择一个合适的深度学习框架,如TensorFlow、Keras或PyTorch。这些框架提供了一系列的算法和工具,方便我们构建和训练深度学习模型。我们可以使用这些框架来处理图像分类、自然语言处理、推荐系统等不同的任务。 在项目演练中,我们首先需要准备训练数据集和测试数据集。然后,我们可以定义模型的结构,选择合适的激活函数、损失函数和优化算法。接下来,我们可以使用训练数据来训练模型,并使用测试数据来评估模型的性能。如果模型的性能不符合要求,我们可以根据需要进行调整,如调整模型的结构、改变参数等。 Python深度学习项目演练除了理论知识外,还需要具备一定的实践经验。通过完成实际的项目演练,我们可以更好地理解深度学习的概念和算法,并掌握如何使用Python编程语言来构建、训练和评估深度学习模型。 总之,Python深度学习项目演练是一个通过使用Python编程语言来构建、训练和评估深度学习模型的实践过程。通过这个演练,我们可以加深对深度学习的理解,并获得实践经验,提高自己在深度学习领域的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值