当前位置: 首页 > wzjs >正文

安宁市建设局网站营销网课

安宁市建设局网站,营销网课,做门户网站开发的技术,什么是网站反链本章节学习的知识点 插入排序希尔排序冒泡排序堆排序快速排序(hoare版本、挖坑法、前后指针法)归并排序 1. 插入排序 代码如下: 2. 希尔排序 希尔排序在插入排序的基础上增加了预排序的功能,从而实现突破(n^2&#…

本章节学习的知识点

  • 插入排序
  • 希尔排序
  • 冒泡排序
  • 堆排序
  • 快速排序(hoare版本、挖坑法、前后指针法)
  • 归并排序

1. 插入排序

代码如下:

在这里插入图片描述

2. 希尔排序

希尔排序在插入排序的基础上增加了预排序的功能,从而实现突破(n^2)效率的算法。

2.1 三层预排序

代码如下:

在这里插入图片描述

2.2 两层预排序

代码如下:

在这里插入图片描述

2.3 多次gap分组预排序最终实现升序效果

在这里插入图片描述

思路:从上面的代码我们可得,希尔排序就是通过gap分成多组进行预排序。
我们和上面一样先进行一次gap分组,将分组进行多次预排序;如果gap为3,也就是进行三组每组都要实现预排序,以此类推。
从上面结论我们可以看到,ga越大越不接近有序,gap越小越接近有序,gap为1则为插入排序。
那么我们想突破n^2效率实现希尔排序,则可以从这个gap入手进行不断缩小gap的值,最终实现升序或者降序。

代码如下:

在这里插入图片描述

总结:

在这里插入图片描述

3. 冒泡排序

代码如下:

在这里插入图片描述

4. 选择排序

选择排序的核心思想是假设下标0是最小值,然后和后序数组的所有元素进行比对,找到最小值进行交换,依次类推,不断的找到次小值。

代码如下:

在这里插入图片描述

5. 堆排序

代码如下:

在这里插入图片描述

6. 快速排序

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。

6.1 hoare版本

代码没有问题的情况下,产生的逻辑问题

在这里插入图片描述

修改以后的代码:

在这里插入图片描述

完整快排代码:

在这里插入图片描述

快速排序总结:

在这里插入图片描述

快排_二叉树结构排序展开图:

在这里插入图片描述

拓展问题 _ 1:

在这里插入图片描述

拓展问题 _ 2:

加粗样式

画图详解:

在这里插入图片描述

6.2 挖坑法

代码如下:

在这里插入图片描述

重点:不管是L还是R在移动,只要是遇到满足条件的下标,则要把当前下标后的值赋值给上一个坑位,然后当前下标变成新的坑位(坑是有滞后性的,始终慢指针一步)。最后需要把节点值重新拿来赋值最后一个相遇坑位。

6.3 前后指针法

在这里插入图片描述

代码如下:

在这里插入图片描述

前后指针单趟排序结果:

在这里插入图片描述

在这里插入图片描述

7. 快速排序优化

三数取中法,可以保证key不是一个最坏的结果

在这里插入图片描述

7.1 优化 _ 三数取中

在这里插入图片描述

在极端场景下,可能左右以及中间都是偏小的值,那么对于排序的优化微乎其微,再者采用随机值的方式,有更多可能性对于排序的帮助更大。

8. 非递归快速排序

核心思想:类似于二叉树的前序遍历,优先深度搜素。

代码如下:

在这里插入图片描述

9. 归并排序

归并排序的思路是以二叉树后续遍历形式找到最下面的左右子节点,然后进行排序,其次往回遍历,再通过左右子节点进行排序,依次类推直到最后回到根节点。
在归并排序中,使用后序遍历的原因是,从最开始的小区间到逐步到后面的大区间,从小区间的合并成有序数组到大区间的合并成有序数组,完美的将一个无序数组,不断的合并成一个有序数组的过程。

代码如下:

在这里插入图片描述

我们知道递归越往下面走,较小区间到只有一个成员的区间的过程是缓慢的,在这个过程中,我们完全可以对小区间排序进行一个优化,避免了递归的深度过于深。

在这里插入图片描述

我们只需要判断区间成员个数配合插入排序对小区间排序进行一个优化。

10. 归并排序(非递归)

在这里插入图片描述

区间存在越界情况:

在这里插入图片描述

方案一 _ 区间越界结束循环:

在这里插入图片描述

方案二 _ 区间越界修正区间:

在这里插入图片描述

11. 快速排序_优化(三路划分)

在这里插入图片描述

画图详解:

在这里插入图片描述

代码如下:

在这里插入图片描述

12. 非比较排序(计数排序)

  • 根据排序进行计算每个数字出现的次数

  • 根据每个数字出现的次数进行重新排序

缺陷:

  1. 依赖数据范围,适合数据集中场景
  2. 只能在整型数据中使用

代码如下:

在这里插入图片描述

本章完~

http://www.dtcms.com/wzjs/267787.html

相关文章:

  • 网站策划网站建设企业产品线上推广方案
  • 网站建设工作室有几个部门百度电脑版登录网站
  • 什么不属于网站推广软件miy188coo免费入口
  • wordpress vip视频靠谱seo外包定制
  • 制作做网站的基本流程网站建设制作教程
  • php网站开发实战开发百度一下你就知道
  • 开发公司向政府申请延期交付seo单页面优化
  • 福州市住房和城乡建设委员会网站大数据查询个人信息
  • google收录网站媒体宣传推广方案
  • 门户网站信息流广告怎么做上海b2b网络推广外包
  • 做的网站图片显示一半外贸全网营销推广
  • 网站建设与网页制作论文武汉seo报价
  • 女人吃男人做床视频网站南通seo
  • 网站开发的几种语言网页制作网站制作
  • 个人网站备案办理拍照淘宝关键词优化技巧
  • 公司网站优化方案可以投放广告的网站
  • 室内设计方案ppt案例seo没什么作用了
  • 做网站公司电话今日热点新闻事件标题
  • 做设计需要素材的常用网站爱站网seo综合查询工具
  • 自己做的网站和模板佛山网络排名优化
  • 上线了做网站价格贵公众号怎么推广和引流
  • 哈尔滨制作网站的公司网络营销的手段包括
  • 有什么做衣服的网站营销平台有哪些
  • 长沙建个网站一般需要多少钱场景营销
  • 做网站做得好的公司有搜索引擎优化排名seo
  • 做网站的职业叫什么宁波网站推广优化外包
  • 网站页面制作公司软件开发公司联系方式
  • 网页传奇游戏哪个好玩搜索引擎优化方法有哪几种
  • 织梦高端大气网站模板保定seo推广
  • 郑州app开发制作百度seo关键词排名优化软件