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

高端集团网站建设公司百度快速排名用是

高端集团网站建设公司,百度快速排名用是,嘉定网站设计制作报价,wordpress文章名称基础排序算法 冒泡排序 思想就是将相邻元素两两比较,当一个元素大于右侧相邻元素时,交换他们的位置,小于右侧元素时,位置不变,最终序列中的最大元素,像气泡一样,到了最右侧。 这时冒泡排序第一…

  基础排序算法

        冒泡排序

思想就是将相邻元素两两比较,当一个元素大于右侧相邻元素时,交换他们的位置,小于右侧元素时,位置不变,最终序列中的最大元素,像气泡一样,到了最右侧。

012c2ec6bb0e46aea56ab0d18dfb1125.jpeg

 

这时冒泡排序第一轮结束,数列最右侧元素9的位置可认为是一个有序区,有序区目前有一个元素.

第二轮排序结束后,数列右侧的有序区有了两个元素.

8d36f60ad52745eeb86880d49d7f3a9a.jpeg

 由于该排序算法每一轮都要遍历所有元素,平均时间复杂度为O(n*n)

def bubble_sort(li):  for i in range(len(li)-1):  # 第i趟for j in range(len(li)-i-1):if li[j]>li[j+1]:   # 降序就改一下符号li[j],li[j+1]=li[j+1],li[j]   li=[random.randint(1,100) for i in range(20)]
bubble_sort(li)
print(li)

如果在某一趟排序中列表没有发生变化,认为已经排好序,这时如果for循环遍历就极大浪费时间,我们可以加每一趟遍历前加一个标志位,在交换元素的代码处加一个修改标志位,这样就可以避免最坏情况出现.

def bubble_sort(li):for i in range(len(li)-1):exchange=Falsefor j in range(len(li)-i-1):if li[j]>li[j+1]:li[j],li[j+1]=li[j+1],li[j]exchange=Trueprint(li)  # 看每一趟的变化if not exchange:return

        选择排序

基础思想为将列表中最小元素依次遍历筛选出来,最终得到一个有序列表

def select_sort_simple(li):li_new=[]for i in range(len(li)):   # 一共需要拿i次min_val=min(li)li_new.append(min_val)li.remove(min_val)return li_new

这个算法虽然简单但是浪费内存,我们可以在列表内部遍历,找到最小元素后与第一个元素交换位置,左侧有序区就有了第一个元素.

def select_sort(li):for i in range(len(li)-1):   # i趟,每次都把最小的放到前边交换min_loc=i   # 默认第一个最小,与后边遍历比较for j in range(i+1,len(li)):if li[j]<li[min_loc]:min_loc=j    # 目前的最小元素索引li[i],li[min_loc]=li[min_loc],li[i]return li

        插入排序

469efdd8a7d14de9a1a9dfc108f5d401.png

 

^ 初始时手里(有序区)只有一张牌(默认为元素第一个值)。

^ 每次从无序区(列表右侧区)摸一张牌(依次遍历),插入到有序区的正确(按大小)位置。

def insert_sort(li):for i in range(1,len(li)):  # 功n-1趟,i表示摸到牌的下标tmp=li[i]  # 每次摸的牌j=i-1      # 手里最右侧的while j>=0 and li[j]>tmp:    # 一直往左走li[j+1]=li[j]    # 右移j-=1li[j+1]=tmp   # 选好位置了

可以看出插入排序时间复杂度为O(n*n)

 

 

http://www.shuangfujiaoyu.com/news/30452.html

相关文章:

  • 动态域名做网站在线友情链接
  • 淘宝官网首页登录账号网站怎么优化关键词快速提升排名
  • 担保交易网站开发站长基地
  • 深圳做英文网站公司惠州seo推广外包
  • 深圳国外网站设计注册网址在哪里注册
  • 厚街网站建设报价百度seo优化是做什么的
  • 多用户服务交易系统佛山做网络优化的公司
  • 手机网站的优缺点免费刷粉网站推广
  • 电子商务网站建设和管理的意义网站优化建议怎么写
  • 网页设计代码大全html制作表单湖南seo服务电话
  • 武汉做鸭兼职网站今天发生的重大新闻5条
  • 怎么把网站做二维码动态网站设计毕业论文
  • 长春搜索引擎网站推广湖南竞价优化专业公司
  • 政府网站建设规范近三天发生的重要新闻
  • 多语网站wordpress子站点广告软文200字
  • 手机网站价格网上找客户有什么渠道
  • 赤峰做网站多少钱交换链接营销成功案例
  • 怎么自己做网站qq网络营销工程师培训
  • 如何提升网站权重百度seo优化技巧
  • 如何查看网站域名解析实体店100个营销策略
  • 南通网站建设十年以上公司上海百度推广排名
  • 南山商城网站建设哪家技术好搜索引擎优化排名优化培训
  • 找做玻璃的网站seo整站优化推广
  • 抖音代运营合作协议安阳seo
  • 购物网站排名女装移动网站优化排名
  • 深圳市seo网站设计多少钱天津网络关键词排名
  • 神马网站排名百度app免费下载安装
  • 成营销型网站制作首页图片点击率如何提高
  • 商城建站系统多少钱seo软文是什么
  • 网站开发 教学目标seo赚钱培训