[博图][排序]双二叉树排序,超简单法及效率,非递归,非指针.

序言

做一个最简单,最傻的二叉树....因为西门子PLC里面没有这种算法..自己想在西门子PLC里面做一个最优的排序.程序之后会附上.

先在EXCEL实现概念..最后才做程序..

大神请不要笑我.

 

  • 基本理念

将数组转换成两颗树....左右比较...将最大值往最后放...

树就会越变越小...会比一般算法快至少一倍速度...

相信这非常简单并容易理解,,希望能帮到一点点...

 

 
  • 遍历节点公式

想要遍历就必须有公式,

从二叉树节点,得到1维数组的位置.及父节点位置

Node_to_Array_Pos(移:-1, 层:=4, 点:=2, 下:=1, 组=>25, 父=>11)//位移,左:-1,右:0

反之...

从二叉树节点,得到1维数组的位置.

Array_to_Node_Pos(组:=25, 移=>0, 层=>4, 点=>3, 下=>1, 父=>11)

 

有了这个公式,遍历和交换节点数据讲非常简单了...

 

 
  •  遍历二叉树,,左右树值比较,,放在最底下..

 

上:看到这里,,我想大家应该知道怎样操作了,,排序效率大大的提升一倍....n!/2

未完,待续..目标拿6万个数据进行排序.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-06-21 20:55  sstan1020  阅读(416)  评论(0)    收藏  举报