选择排序(二)--树形选择排序
来源:互联网 发布:ubuntu怎么进入root 编辑:程序博客网 时间:2024/06/04 18:49
利用满二叉树的性质,思想:将输入的数据存放到满二叉树的叶节点,通过比较树中剩余可用节点(从底层的叶节点开始)的大小,每次选择最小的数值(比较复制到二叉树的顶端),并且把最小数值赋给排序数组的前端,把最小数值原来叶节点的位置设置为不可用;依次循环直至最后一个可用叶节点。
一、满二叉树和完全二叉树区别如图:
二、程序讲解:
template
class TreeNode{
public:
T data;
int index;
int active;
TreeNode & operator=(TreeNode & treenode)
{
this->data=treenode.data;
this->index=treenode.index;
this->active=treenode.active;
return *this;
}
};
树节点数据结构包括了data数值,index用来存放该数值在叶节点存放的位置(所有数据开始都是存放在叶节点),active表示激活没有,最后如果该数据移植树根部,则将active字段置0无效。
具体的程序每次交换的输出如下,
输入数据时:1541,54, 89,345 , 416,1
#表示叶节点处无效的位置,
一次排序后参加排序(有效的)的数据移到最顶端(树根)
- 选择排序(二)--树形选择排序
- 选择排序(二)--树形选择排序《 转载》
- 算法二之树形选择排序
- 算法二之树形选择排序
- 树形选择排序
- 树形选择排序
- 树形选择排序
- 树形选择排序算法
- 【笔记】树形选择排序
- 排序(二):选择排序
- 选择排序(二)
- (1.3.7)选择排序:简单选择、树形选择
- 选择排序:简单选择、树形选择
- 选择排序之树形选择排序(TreeSelectionSort)
- 数据结构-选择排序-树形选择排序
- 【排序二】选择排序(选择排序&&堆排序)
- 【排序二】选择排序(选择排序&&堆排序)
- 数据结构 JAVA描述(十一) 选择排序(直接选择排序,树形选择排序,堆排序)
- 确定对象在被使用前被初始化(Make sure that objects are initialized before they’re used)——effective c++学习笔记
- 严重: Dispatcher initialization failed java.lang.RuntimeException
- 转 java+jsp 问答笔记
- 确定对象在被使用前被初始化(Make sure that objects are initialized before they’re used)——effective c++学习笔记
- 转 java+jsp 问答笔记
- 选择排序(二)--树形选择排序
- 顺序表的实现
- PKU--1001(hdu 1063)---[Exponentiation] 字符串模拟
- 1010 深搜
- js树形控件 dtree的用法
- 查询指定QQ号是否在线
- 生命的长度
- 常用免费邮件服务器
- 去除字符串中的空格和换行符