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. Nature重大突破!将皮肤细胞直接转化成感光细胞让小鼠重见光明!
  2. 无锡易保Java面试笔试_易保面试题 - willim - BlogJava
  3. error LNK2001: unresolved external symbol _WinMain@16
  4. LeetCode 500. 键盘行
  5. 【VB.NET】VB.NET数据库技术问题的解答
  6. python中while的用法_Python学习笔记之While循环用法分析
  7. C++类成员函数的传参问题
  8. 视觉SLAM入门十四讲
  9. 番外篇:常见安全漏洞及解决方案
  10. java中如何表达sin_在Java中使用“sincos”
  11. 10款可视化大屏特效,酷炫又内涵!
  12. .net 导出excel_C# 导出 Excel 的 6 种简单方法!你会几种?
  13. HTML + CSS + JS做一个绘画分享网站[开源项目]
  14. 广州电信新推出的实惠套餐(目前更新时间3月27日,非官方口径,不正确的地方请指出)...
  15. Java设计模式之工厂模式篇 (转)
  16. 浅谈LED和OLED技术区别
  17. 如何建一个精品的互性性好的网站?
  18. 爬取一条微博的所有转发链接
  19. 学习C++ - 向量(vector)!你今天努力了吗?
  20. C# SolidWorks 二次开发 API---提高草图绘制效率

热门文章

  1. Activiti(工作流)如何关联业务表
  2. Rust 新手入门系列课程 | Databend 社区
  3. 收藏10000+,网络安全行业应该考哪些证?
  4. php语言精髓,PHP语言精粹
  5. React的行内样式
  6. “真太极”先生论太极拳录
  7. 对论文进行数据分析的几种方法总结(个人总结)
  8. 吃一堑长一智(sql篇)
  9. mybatis plus查询上个月和本月的数据
  10. 你还有用360清理你的电脑垃圾吗?别用了,这样只会越来越卡!