数据结构 排序

算法分为7种分为两大类
简单算法:冒泡、简单选择、直接插入。
改进算法:希尔排序、堆排序、归并排序、快速排序。
在这里插入图片描述
冒泡排序
冒泡排序:一种交换排序,它的基本思想是 两两比较交相邻记录的关键字,如果反序则交换,直到没有反序为止。

简单选择排序算法
简单选择排序算法:就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换

直接插入排序算法
直接插入排序算法:的基本操作是将一个记录插入带已经排好序的有序表中,从而得到一个新的、记录数增1的有序表

堆排序
堆排序具有下列性质的完全二叉树:每个节点的值都大于或等于其左孩子节点的值,成为大顶堆,或者每个节点的值都小于或等于其左右孩子节点的值,成为小顶堆
在这里插入图片描述
堆排序:将待排序的序列构造成一个大顶堆,此时 整个序列的最大值就是堆顶的根节点,将它移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值)然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素中的次小值,如此反复执行,便能得到一个有序序列了
在这里插入图片描述
在这里插入图片描述
归并排序
归并排序:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]([x]表示不小于x的最小整数)个长度为2或11的有序子序列,载两两归并,。。。,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序

快速排序算法
快速排序:的基本意思是通过一趟排序待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值