package ding1;              //二叉树排序import java.util.Scanner;   //数组用的是位序!!class A{ void exch(int a[],int i,int j) {  //交换a[i]和a[j]的值int temp;temp=a[i];a[i]=a[j];a[j]=temp;}void swim(int a[],int k) {  //上浮第k位置的元素 至合适的位置(树由上到下降序)while(k>1 && a[k/2]<a[k]) {exch(a,k/2,k);k=k / 2;}}void sink(int a[],int k,int N) {  //下沉第k位置元素,优先与左右孩子中最大的互换位置(树由上到下降序)while(2*k <= N) {int j=2*k;if(j<N && a[j]<a[j+1]) j++;if(!(a[k]<a[j])) break;exch(a,k,j);k=j;}}
}public class ceshi{ public static void main(String[] args) {A a = new A();Scanner reader = new Scanner(System.in);int x[]= new int[10];for(int i=0;i<10;i++) {   //注:x[0]不用!!填“0”占位置。x[i]=reader.nextInt();}int N = x.length - 1;     //去除x[0]这个元素后的数组长度int N1 = N;for(int k=N/2;k>=1;k--) { //使二叉树有序(由上到下降序)a.sink(x,k,N);}while(N>1) {              //由上到下升序排序a.exch(x,1,N--);a.sink(x,1,N);}for(int i=1;i<=N1;i++) {System.out.println(x[i]);}}
}

测试结果:

二叉树排序(java)相关推荐

  1. 二叉树排序-Java版本

    利用二叉树结构以及遍历方式可以实现基于二叉树的元素排序处理. 首先根据插入元素的大小与根节点大小的比较来构建一颗完整的树. 在构建好二叉树之后,并没有继续排序,所以我们需要使用一个中序遍历,因为中序遍 ...

  2. Java 实现二叉树排序和查找

    啥都不说了,直接上代码 package com.inter.structure;import java.util.Random;/*** 使用Java实现二叉树排序 二叉树只有一个根节点* * @au ...

  3. java 文件遍历排序_Java的二叉树排序以及遍历文件展示文本格式的文件树

    Java二叉树排序算法排序二叉树的描述也是一个递归的描述, 所以排序二叉树的构造自然也用递归的: 排序二叉树的3个特征: 1:当前node的所有左孩子的值都小于当前node的值: 2:当前node的所 ...

  4. arraylist从大到小排序_java基础算法之二叉树排序(递归)

    一.二叉树介绍 在计算机科学中,二叉树是每个结点最多有两个子树的树结构.二叉树由各种节点组成,如下图所示: 每个节点都可以有左子节点,右子节点 每一个节点都有一个值 二叉树遍历: 二叉树的遍历分左序, ...

  5. 八大排序:Java实现八大排序及算法复杂度分析

    目录 QUESTION:八大排序:Java实现八大排序及算法复杂度分析 ANSWER: 一:冒泡排序 1.算法分析 2.时间复杂度分析 3.代码 二:选择排序 1.算法分析 2.时间复杂度分析 3.代 ...

  6. java 二叉树特点_二叉树的Java实现及特点总结

    二叉树是一种非常重要的数据结构,它同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加.但是他也有自己的缺点:删除操作复杂. 我们先介绍一些关于二叉树的概念名词. 二叉树: ...

  7. 二叉树 排序二叉树-可以通过中序遍历得到排序的数据 二叉排序树时间复杂度O(logn),...

    二叉树是一种非常重要的数据结构,它同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加.但是他也有自己的缺点:删除操作复杂. 虽然二叉排序树的最坏效率是O(n),但它支持动 ...

  8. php二叉树 排列,PHP 如何实现用户二叉树排序需求

    用户二叉树排序需求 用户注册,输入以下注册信息: - 电子邮箱 - 密码 - 确认密码 - 推荐人ID(此ID可以在数据库中手动增加一个) 每注册进一个新用户,该用户就进入到排序中 排序规则 新增用户 ...

  9. 算法练习5---快速排序Java版

    基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成 ...

最新文章

  1. IIS配置相关问题:Framework 4.5 在IIS 7.5中运行
  2. 15-jQuery补充
  3. IE8下 Select文字垂直居中的办法
  4. 从零入门 Serverless | 函数计算的可观测性
  5. python写表格_python写入表格
  6. 利用ASP.NET一般处理程序动态生成Web图像(转)
  7. 关闭应用程序的几种方法
  8. DelayedProduce分析
  9. 基于相关向量机RVM的分类算法
  10. Android 滑动界面实现---Scroller类别 从源代码和开发文档了解(让你的移动布局)...
  11. C# 不借助第三个变量实现两整数交换
  12. 消息钩子函数入门篇(1)--基础知识
  13. 分享一个简单唯美的404页
  14. Spring Boot启动参考指南(官方版)
  15. 中国互联网创业者的困境
  16. 如何用微信公众号快速注册小程序
  17. Excel根据名字批量插入图片
  18. pytorch深度学习基础(九)——深入浅析卷积核
  19. creo打不开stp文件_Creo怎么打开stp格式的文件?
  20. JWT HandBook —— 官方使用手册下载链接

热门文章

  1. ssdb java_hydrogen-ssdb
  2. 除了阿里AI设计师“鲁班”,设计师还能用AI做什么?
  3. 深入理解MFCC(梅尔频率倒谱系数)
  4. 机械专业检修计算机,用机械专业说一句情话
  5. php rbac实现,php实现rbac权限管理
  6. 淮阴中学2021高考成绩查询,2019淮中、清中、滨河等高中高考成绩公布!全线飘红....附江苏省理科前十名的考生名单。...
  7. 动森amiibo数据_动森岛屿规划神器来了!还有 6 款超实用的辅助工具丨集合啦!动物森友会...
  8. ZOJ3939 The Lucky Week
  9. python爬虫网络安全的_基于Python网络爬虫实战 - 安全牛课堂 - 领先的信息安全在线教育平台...
  10. 计算机主板本身不带,现在新电脑主板带WiFi,实不实用,稳定吗?