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

深圳中瑞建设集团官方网站seo搜索引擎优化网站

深圳中瑞建设集团官方网站,seo搜索引擎优化网站,云建设网站,博客建站模板最近需要使用到一些排序算法,今天主要使针对直接插入排序和折半插入排序进行讲解。 首先是直接插入排序,其排序过程主要是,针对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/770498/

相关文章:

  • 公司做网站排名网络销售是做什么
  • 截取网站流量上海环球金融中心美食
  • 做团购网站多少钱网站优化排名软件
  • 如何做网站逻辑结构图临平网站建设
  • 襄阳网站建设外包搜一下百度
  • 国示范校建设网站新品发布会流程方案
  • 衡阳做网站的seo优化方案报价
  • 如何建立和设置公司网站手机网站在线咨询代码
  • 河南省网站建设方案书墨玉县建设工程信息网
  • 江苏建站管理系统信息互联网+大学生创新创业项目官网
  • 淘宝网站怎么做会话保持的软件培训
  • 离型剂技术支持东莞网站建设绵阳专业网站建设
  • 网站主页建设格式国内优秀个人网站
  • 网站建设行业前景下载班级优化大师app
  • 福田营销型网站建站推广外包国外优秀购物网站设计
  • 公司网站建设的免费开源建站教学网站
  • 商务网站设计方案wordpress 自动收录
  • 福建城乡建设网站贵阳的网站建设
  • 规范机关单位网站建设网站开发工程师的职责
  • 网站源码怎么获取学技术网站
  • pc网站优化排名软件网站布局分析
  • 海外网站建设平台实战直播
  • 网站推广活动销售网页制作
  • dedecms网站后台管理wordpress template
  • 响应式网站建设的应用场景湖州网站优化
  • 广州云建站模板南宁 网站推广
  • 做收费类网站站长新闻cms静态网站模板
  • 备案要关闭网站吗做网站需要规划好什么
  • 域名不变 新网站网络营销的传播手段
  • 网站开发学哪一个好电子商务网站开发技术有哪些