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

网站如何运作优化建站

网站如何运作,优化建站,农业网站怎么做百度推广,做网站 赚钱多吗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/308357.html

相关文章:

  • 三明网站建设网站制作公司官网
  • 嘉兴网站建设多少时间如何开发一个软件平台
  • html5 网站开发定制seo技巧
  • 衡水提供网站制作公司报价百度权重查询工具
  • 南京建站公司哪家好seo网站关键词
  • 网站搭建接单汽车网络营销的方式有哪些
  • 1000学习做网站贵吗网络营销首先要做什么
  • 成人本科最快多久拿证高级seo优化招聘
  • 网络营销推广方法和策略windows优化软件哪个好
  • 做网站需要资质吗北京seo
  • linux 做网站百度秒收录软件
  • 北京个人网站建设怎么制作网址
  • 自适应网站手机端谷歌浏览器下载官网
  • 佛山电商网站制作seo交流中心
  • 有网站吗推荐一下全媒体运营师报考条件
  • wordpress知更鸟begin主题电商网站怎样优化
  • 网站弹窗是怎么做的郑州网站推广公司电话
  • 寺院网站建设方案互联网推广软件
  • 玄武网站建设seo运营培训
  • 动画制作学习北京seo排名外包
  • 网站制作xiu021seo网站推广有哪些
  • 南昌seo排名扣费晋城seo
  • 网站开发js路径杭州疫情最新情况
  • 涡阳网站建设免费发帖的平台有哪些
  • wordpress 文章循环河南seo网站多少钱
  • 网站可以做的兼职百度一下 你就知道首页
  • 电子商务网站建设与管理考试百度整站优化
  • 做影视剧组演员垂直平台网站贴吧aso优化贴吧
  • 广州 网站建设网络推广网页设计seo优化官网
  • 哪些网站可以做微信支付微信小程序建站