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

电子商务网站建设作业代码购物网站建设基本流程树状图

电子商务网站建设作业代码,购物网站建设基本流程树状图,媒体库wordpress,广告设计图案选择排序和冒泡排序都是常见的排序算法。以下是这两种算法的Python实现: 选择排序(Selection Sort) 选择排序的基本思想是在未排序的序列中找到最小(或最大)元素,存放到排序序列的起始位置,然…

选择排序和冒泡排序都是常见的排序算法。以下是这两种算法的Python实现:

  1. 选择排序(Selection Sort)

选择排序的基本思想是在未排序的序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

Python实现如下:

  1. def selection_sort(arr):
  2.     for i in range(len(arr)):
  3.         # 找到当前未排序部分中的最小值
  4.         min_index = i
  5.         for j in range(i+1, len(arr)):
  6.             if arr[j] < arr[min_index]:
  7.                 min_index = j
  8.         # 将找到的最小值与当前i位置的值交换
  9.         arr[i], arr[min_index] = arr[min_index], arr[i]
  10.     return arr
  1. 冒泡排序(Bubble Sort)

冒泡排序的基本思想是,通过比较相邻的两个元素,如果前一个比后一个大,则交换它们的位置。这样对数组进行多次遍历,每一次遍历都把一个未排序的元素放置到了已排序的末尾,也就是逐渐"冒泡"到正确的位置。

Python实现如下:

  1. def bubble_sort(arr):
  2.     n = len(arr)
  3.     for i in range(n):
  4.         # 最后i个元素已经有序,无需比较
  5.         for j in range(0, n-i-1):
  6.             if arr[j] > arr[j+1]:
  7.                 arr[j], arr[j+1] = arr[j+1], arr[j]  # 交换位置
  8.     return arr

这两种算法的时间复杂度都是O(n^2),其中n是列表的长度。这意味着,对于非常大的数据集,这些算法可能不是最高效的。有其他一些更高效的排序算法,例如快速排序、归并排序和堆排序等。

  1. 快速排序(Quick Sort)

快速排序是一种分治的排序算法。它将一个大的数组分成两个子数组,将两部分独立地排序。快速排序的核心思想是选择一个"基准"元素,通过一趟排序将待排序列分割成独立的两部分,其中一部分的所有元素都比另一部分的所有元素要小,然后再按此方法对这两部分继续进行排序,以达到整个序列有序。

Python实现如下:

  1. def quick_sort(arr):
  2.     if len(arr) <= 1:
  3.         return arr
  4.     pivot = arr[len(arr) // 2]
  5.     left = [x for x in arr if x < pivot]
  6.     middle = [x for x in arr if x == pivot]
  7.     right = [x for x in arr if x > pivot]
  8.     return quick_sort(left) + middle + quick_sort(right)
  1. 归并排序(Merge Sort)

归并排序是另一种分治的排序算法。它将待排序的序列划分为若干个子序列,每个子序列是一个有序的序列。然后再将所有子序列合并成一个有序的序列。这个过程是递归的,每一层的归并做为一次"归并操作"。

Python实现如下:

  1. def merge_sort(arr):
  2.     if len(arr) <= 1:
  3.         return arr
  4.     mid = len(arr) // 2
  5.     left = merge_sort(arr[:mid])
  6.     right = merge_sort(arr[mid:])
  7.     return merge(left, right)
  8. def merge(left, right):
  9.     result = []
  10.     i = j = 0
  11.     while i < len(left) and j < len(right):
  12.         if left[i] <= right[j]:
  13.             result.append(left[i])
  14.             i += 1
  15.         else:
  16.             result.append(right[j])
  17.             j += 1
  18.     result += left[i:]
  19.     result += right[j:]
  20.     return result
http://www.yayakq.cn/news/449467/

相关文章:

  • 品牌网站建设十小蝌蚪福州比较大的互联网公司
  • 网站管理建设的需求分析工地找工作哪个软件好
  • 东台市建设局网站做软件实施有前途吗
  • 北京旅行社网站建设公司个体户网上申报
  • 征求网站建设扁平风网站
  • wordpress手机文章列表游戏优化软件
  • html 网站模板下载wordpress去掉导航框
  • 扁平风格网站 模板360提交网站入口
  • 哪里有网站开发团队欧美动物人物ppt免费模板下载网站
  • git怎么做隐私政策网站手机网站后台怎么进
  • 展示形网站怎么建简单的app开发案例
  • 团购网站怎么做推广产品设计和视觉传达设计哪个好
  • 网站建设l临沂网站搭建多少钱
  • 免费行情网站网络服务费税率是多少
  • wap手机网站建设方案做网站需要板块
  • 服装行业网站建设比较好网站后台无法编辑文字
  • 上海魔力网站建设公司高德地图看不到菲律宾
  • 建设网站需要购买哪些p2f网站系统
  • 曲靖做网站需要多少钱高端建站和普通建站有哪些不同
  • 威海住房和城乡建设局网站首页ppt汇报模板免费下载
  • 湖北联兴建设有限公司网站wordpress使用对象储存
  • 网站设置在哪里找彩票做网站
  • 网站建设如何选择服务器eclipse开发安卓app
  • 大庆市建设中专网站python搭建服务器
  • 设计网站做的工作步骤是网站建设公司如何选取
  • 制作一个网站数据库怎么做实训百度搜索引擎的总结
  • 公司网站制作内容广东省农业农村厅彭彬
  • 上海南京东路网站建设贵阳网站设计公司
  • 商城微网站如何做个体户怎么做购物网站
  • 办公网新闻上传网站开发建公司网站