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

黄冈网站推广软件有哪些烟台网站建设报价

黄冈网站推广软件有哪些,烟台网站建设报价,百度百科创建入口,广州专业做网站最近需要使用到一些排序算法,今天主要使针对直接插入排序和折半插入排序进行讲解。 首先是直接插入排序,其排序过程主要是,针对A[a1,a2,a3,a4,a5....an],从排序的序列头部起始位置开始,将其也就是a1视为只有一个元素的…

最近需要使用到一些排序算法,今天主要使针对直接插入排序和折半插入排序进行讲解。

首先是直接插入排序,其排序过程主要是,针对A[a1,a2,a3,a4,a5....an],从排序的序列头部起始位置开始,将其也就是a1视为只有一个元素的子集合B[a1],这个B子集合本身就是有序的。

然后从a1之后的所有元素,也就是从a2开始,每次将a2到an按照正序或者倒序的方式插入到有序的这个B子集合中去,这样最终能够得到包含所有A集合的元素的B集合,这也就是最后的有序的A集合。

添加图片注释,不超过 140 字(可选)

示意图如上,对应的A集合和B集合,每次循环B集合增加一个元素,最后就得到正序的A集合。

直接排序的python实现如下:

def quickSort(nums):for i in range(1, len(nums)):key = nums[i]j = i - 1while j >= 0 and key < nums[j]:nums[j + 1] = nums[j]j -= 1nums[j + 1] = keyreturn nums

A = [60, 30, 80, 19],对A集合使用直接排序后的输出结果

然后就是折半插入排序,其主要是为了降低直接插入排序法的时间复杂度,对直接插入进行了一定的改进,减少插入过程中的比较次数,其实现主要是使用双指针的方式,low和high指针,这两个指针指向有序子集合的头和尾,然后取(low+high)/2的向下取整即是mid,根据每次与mid指向的值对比,如果大于这个值,则这个值应该在mid与high之间,如果小于这个值,则该值应该在mid和low之间。折半插入的实现如下:

def halfSort(nums):for i in range(1, len(nums)):key = nums[i]high = i - 1low = 0while (low <= high):mid = int((low + high) / 2)if (key >= nums[mid]):low = mid + 1if (key <= nums[mid]):high = mid - 1j = i - 1while (j >= low):nums[j + 1] = nums[j]j -= 1nums[low] = keyreturn nums

B=[20,30,90,10,28,49,20,41,42,78],对B进行折半插入排序之后的输出结果

以上就是两个排序的实现方法。

http://www.yayakq.cn/news/405179/

相关文章:

  • 适合做浏览器主页的网站手机网站多少钱一个
  • 如何制作一个手机网站怎么做网站才能不被仿冒
  • 做动漫网站营销型网站建设需要懂什么
  • 如何重视企业网站的建设网站建设的主要技术
  • 有关网络技术的网站做网站公司价格多少
  • 2018怎么做网站淘宝客图文网站源码
  • 有经验的江苏网站建设网站策划师招聘
  • 网站建设公司线下推广注册空壳公司帮人走账
  • 树立网站整体风格wordpress常用技巧
  • 怎么把网站模板上传到自己的网站网页美工设计培训学校哪家好
  • 做网站公司 晨旭东方对亚马逊网站做简要分析与评价
  • 个人网站页面模板html推广一个产品有哪些方式
  • 做资讯类网站需要什么资质网站赚钱平台
  • 做网站选什么配置电脑网站做数据监测
  • 多少钱做网站个性logo图案
  • 网站开发建设公司深圳网站建设公司公司
  • 营销型网站 平台网站开发验收确认书
  • 从化区建设网站wordpress首页404伪静态
  • 仿木鱼网络网站南通网站制作维护
  • 吉林省网站建设公司帮你省网站怎么做
  • 南宁市做公司网站南宁 建网站 公司
  • 网站模板文件扫描国外网站工作室
  • 北京软装设计公司有哪些企业网站优化平台
  • 祖庙高明网站建设c2c平台举例
  • 网站建设在医院的作用一页网站首页图如何做
  • 哪个网站可以做计算机二级的题旅游网站内容规划
  • 东莞设计网站建设优化大师下载安装
  • 自己用dw做网站能加声音吗注册会计师报考条件和时间2023
  • 网站改版计划比特币网站怎么做
  • 光大成贤建设有限公司网站网站建设的工作职责是什么