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

目录浏览的网站win7优化教程

目录浏览的网站,win7优化教程,iis停止单个网站,罗湖网站建设优化1、冒泡排序 冒泡排序是一种简单的排序算法。 工作原理:重复地遍历要排序的列表,比较每对相邻项,如果它们的顺序错误就把它们交换过来。 用从小到大的排序举例,先比较第1和第2,再比较第2和第3,再比较第3和第4,依次对比,每一对比过程中如果大的数在前,则两个值位置互换…

在这里插入图片描述

1、冒泡排序

冒泡排序是一种简单的排序算法。
工作原理:重复地遍历要排序的列表,比较每对相邻项,如果它们的顺序错误就把它们交换过来。
用从小到大的排序举例,先比较第1和第2,再比较第2和第3,再比较第3和第4,依次对比,每一对比过程中如果大的数在前,则两个值位置互换。

时间复杂度最好为O(n),最坏为O(n2),其中n是要排序的元素个数
空间复杂度为O(1),因为它只需要固定的额外空间来进行元素交换,与待排序数据量无关。
在这里插入图片描述

def bubbleSort(arr):for i in range(len(arr) - 1):  # 来回推len(arr)-1次 i就是已经排序完成了多少到最后for j in range(len(arr) - i - 1):  # 每一遍都会把未排序部分中最大的推到后面 橙色已排序的部分不需要再排了 故-iif arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]  # 大的往后排 置换数值return arr
if __name__ == '__main__':arr_li = [1, 3, 9, 4, 0, 2, 7, 5, 8, 6]print(bubbleSort(arr_li))

2、选择排序

选择排序是一种简单且直观的排序算法。
工作原理是:首先在未排序序列中找到最小(或最大)元素,然后将其放到已排序序列的首部或末尾。重复这个过程,直到整个序列有序。这种算法的时间复杂度为O(n2),不需要额外的空间,是一种不稳定的排序算法。
它和冒泡类似,每一次大遍历都是把最大或最小的放置在首部或尾部(橙色部分),需要length-1次大遍历,每次大遍历中有length-1-i次小遍历(i是已排元素个数,也是已经大遍历的次数)

选择排序的时间复杂度为O(n2),空间复杂度为O(1)。
在这里插入图片描述

def selectionSort(arr):for i in range(len(arr) - 1):minInd = i  # 放置最小值的下标for j in range(i + 1, len(arr)):  # 跳过已经排序好的前i个 每次都到len(arr)最后一个元素print(j)if arr[j] < arr[minInd]:minInd = j# 每一次大遍历后 对比剩余部分最小值和遍历起始下标值if minInd != i:arr[i], arr[minInd] = arr[minInd], arr[i]return arr
if __name__ == '__main__':arr_li = [1, 3, 9, 4, 0, 2, 7, 5, 8, 6]print(selectionSort(arr_li))

3、插入排序

插入排序是一种简单且直观的排序算法。
工作原理:依次从未排序元素的首位(或尾部)取出一个元素,将与已排序部分逐个对比,直到满足条件,将取出的元素放置在最后一次对比元素前,重复以上步骤直到未排序元素都被插入并排好序为止。

同冒泡排序时空复杂度,时间复杂度为最好为O(n),最坏为O(n2),,空间复杂度为O(1)。
在这里插入图片描述

def insertionSort(arr):for i in range(len(arr)):  # 大遍历次数len(arr)current = arr[i]  # 每次拿出一个current数组  依次和前面的作比较preInd = i - 1  # current要和这个下标的值对比 第一次是和下标-1的对比 即直接将current放在preInd前(作为排序好的首位)while preInd >= 0 and arr[preInd] > current:arr[preInd + 1] = arr[preInd]preInd -= 1  # 继续往前对比arr[preInd + 1] = current  # 直到前面没有比current大的了 将current放进刚对比的arr[preInd]前return arr
if __name__ == '__main__':arr_li = [1, 3, 9, 4, 0, 2, 7, 5, 8, 6]print(insertionSort(arr_li))

4、希尔排序

希尔排序是一种基于插入排序的排序算法,也被称为“缩小增量排序”。
工作原理:通过将待排序的数组分成若干个子序列,然后对这些子序列分别进行插入排序。这些子序列是原始数组中相隔固定增量(gap)的元素组成的。随着排序进行,增量逐渐减小,最终变为1,此时数组基本有序,最后一次插入排序即可完成排序。希尔排序的关键在于增量序列的选择,不同的增量序列会影响算法的性能。

时间复杂度取决于增量序列的选择,在O(n log2 n)与O(n2)之间。
空间复杂度为O(1),因为希尔排序在排序过程中只需要常数级别的额外空间来存储临时变量。
在这里插入图片描述

def shellSort(arr):gap = len(arr) // 2while gap > 0:  # 每一次跳gap次取元素作为一组for i in range(gap, len(arr)):  # 对同一组内的元素进行插入排序 从后往前遍历已排序的元素并插入 56789tempInd = iwhile tempInd >= gap and arr[tempInd] < arr[tempInd - gap]:arr[tempInd], arr
http://www.dtcms.com/wzjs/495444.html

相关文章:

  • 160 国际英文网站优化seo是什么
  • 如何做代刷网站长企业营销策划书范文
  • 广东注册公司代办搜索引擎优化师工资
  • 南沙哪有做网站的营销型网站建设公司价格
  • 自己做返利网站吗网络营销推广主要做什么?
  • 凡科建站建网站宁波谷歌seo
  • 女孩做网站运营好吗肇庆疫情最新情况
  • 做废旧金属的网站上海优化网站公司哪家好
  • 清洁海绵的网站怎么做长春网站seo
  • 电子商务网站建设与网页设计win10系统优化软件
  • 宝山网站建设公司网站提交入口
  • 做搜狗网站优化点击百度云搜索引擎入口百度网盘
  • 票务网站策划书网络营销技巧培训班
  • app开发分为哪几种排名seo怎么样
  • b2b平台网站开发东莞搜索seo网站关键词优化
  • php网站开发简历seo营销名词解释
  • 如何建立一个带论坛的网站系统优化app最新版
  • wordpress 编写页面代码公司排名seo
  • 大连p2p网站建设搜什么关键词能找到网站
  • 关于做网站的合同营销网站建设大概费用
  • 青岛建站费用培训报名
  • 大气家具行业商城类公司网站织梦模板企业网络营销成功案例
  • 广州动态网站开发西地那非片吃了能延时多久
  • 做艺术品的网站网站做外链平台有哪些
  • 最好的赣州网站建设手游推广平台哪个好
  • 网站seo工具外贸网站如何推广优化
  • 单仁咨询建设网站百度竞价推广账户
  • 深圳网站设计工资一般多少微信营销成功案例8个
  • 社保减员要怎么做 国税局网站网站如何赚钱
  • 个人网站首页内容百度下载免费安装最新版