2022 C语言数据结构总结浅浅入门(7)一点点赫夫曼树和排序分类

上次的二叉树,咱们剩一点点没讲,今天讲掉:

赫夫曼树
赫夫曼(Huffman)树,又称最优树,是带权路径长度最短的树

1) 每次取出最小的两个数,小的放左边
2) 刚才的两个小的值相加,求出和,然再剩下的(包括刚才的和)中再取出两个小的,
3) 依次类推

可以理解为这是一个赫夫曼树(哈夫曼树)ps:音译问题不要在意

 树那部分我要讲的就这么多,然后咱们讲讲排序

排序可以分为稳定排序不稳定排序

稳定排序
    如果a原本在b前面,而a=b,排序之后a仍然在b的前面。

不稳定排序
    如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。

常见的那些排序的分类:

属于稳定排序的是:冒泡排序插入排序(它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入),交换排序

属于不稳定排序的是:选择排序 (每轮 从头到尾 扫描,选出最小的,放在前面, 此种排序叫选择排序),快速排序(每次从前面拿出第一个数,开始排序,经过1轮 左面都比其小,右面的都比其大)

快速排序: 采用的是插空的方式,移动数据少(所以效率更高)

顺便说一下,快排和冒泡日常用的很多,不清楚自己去找详细的程序去记住,网上一堆

影响排序效率的因素有哪些?  

1) 移动的次数     (影响的大一些)          2) 比较的次数   

插入排序如何减少比较次数? 

二分法找到位置(折半插入排序)

插入排序如何减少移动次数?

链表插入排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值