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

松江品划网站建设维护装修公司报价明细表范本

松江品划网站建设维护,装修公司报价明细表范本,江苏机械加工网,tom企业邮箱注册一、思维导图二、冒泡排序def bubble_sort(ls):"""用i循环,逐步比较相邻元素,直到循环结束,停止交换,就像一个个气泡从下往上冒泡,每一次的循环结果都是最大的元素到了后面已排序序列的列首。"""j 0 # 用于确定循环次数,同时用于下…

一、思维导图

二、冒泡排序

def bubble_sort(ls):"""用i循环,逐步比较相邻元素,直到循环结束,停止交换,就像一个个气泡从下往上冒泡,每一次的循环结果都是最大的元素到了后面已排序序列的列首。"""j = 0  # 用于确定循环次数,同时用于下面排除已排序序列while j < len(ls):i = 0  # 用于遍历未排序序列while i < len(ls) - 1 - j:  # -j排除已排序序列# 两两比较if ls[i] > ls[i + 1]:ls[i], ls[i + 1] = ls[i + 1], ls[i]i += 1j += 1

三、选择排序

def selection_sort(ls):"""选择排序逐步找到每个最小元素依次放入前面已排序列列尾"""i = 0  # 用于确定遍历次数,也可理解为已排好序的元素后的第一个位置while i < len(ls) - 1:m = i  # 用于存放下标最小值,每次循环前需要重置为i,一次循环结束后交换m和j的位置j = i + 1  # 用于 遍历i后面的所有元素与i对比,同时把遍历到的最小值赋值给m,# 遍历j用于寻找最小的元素并用m标记while j < len(ls):if ls[j] < ls[m]:m = jj += 1if m != i:  # 避免无意义的交换ls[i], ls[m] = ls[m], ls[i]  # 将寻找到的最小元素交换到最前面i += 1

四、直接插入排序

def insertion_sort(ls):"""直接插入排序"""i = 1  # 记录待排序列中的第一个元素,从1开始是因为第一步只插入了一个元素没必要排序while i < len(ls):temp = ls[i]  # 用于保存当前元素的值j = i  # j用于向前遍历,逐步与temp比较,若j-1大于temp直接右移j-1,最后当j-1<=temp,空出来的位置填入temp# j<0表示只有一个元素时不必排序while temp < ls[j - 1] and j > 0:ls[j] = ls[j - 1]j -= 1ls[j] = tempi += 1

五、快速排序


def quick_sort_part(ls, L, R):"""快速排序"""# 定义基准P = ls[L]while R > L:while ls[R] >= P and R > L:  # R和L是会变化的,所以内循环也要检查 R 是否 > LR -= 1ls[L] = ls[R]  # 比基准小的数据放在左边while ls[L] <= P and R > L:L += 1ls[R] = ls[L]  # 比基准大的数据放在右边# 当L=R说明只剩最后一个元素,把P填进去ls[L] = P  # or ls[R] = Preturn R  # 返回当前基准,也可以return Ldef quick_sort(ls, L, R):"""快速排序"""if R > L:  # 只有当不止一个元素时才进行快排# 进行第一次快排P_index = quick_sort_part(ls, L, R)# 递归,直到R>L# 对基准左边的进行快排quick_sort(ls, L, P_index - 1)  # 此处递归结束表示第一次快排之后的左边部分已经排序完毕。# 对基准右边的进行快排quick_sort(ls, P_index + 1, R)  # 此处递归结束表示第一次快排之后的右边部分已经排序完毕。

六、希尔排序

def shell_sort(ls):""""""n = len(ls)  # ls的长度gap = n // 2  # 初始化gap# 确定外层循环次数while gap > 0:for i in range(gap, n):  # 从与第一个元素相隔gap的元素开始遍历j = i  # 不能改变外循环的i,需要创建一个j用于比较while j >= gap and ls[j] < ls[j - gap]:  # j>=gap 判断 j-gap 是否会越界。ls[j]<ls[j-gap] 判断是否需要交换ls[j - gap], ls[j] = ls[j], ls[j - gap]  # 交换j -= gap  # 让当前元素继续向前跳跃 gap 步,去和更前面的同组元素比较,直到它到达正确的插入位置。# 更新步长gap = gap // 2

七、归并排序

# 定义归并排序算法
def merge_sort(alist):"""归并排序"""# 如果列表的元素个数小于等于1 直接返回if len(alist) <= 1:return alist# 将列表从中间分割成两半mid = len(alist) // 2left_half = alist[:mid]right_half = alist[mid:]# 分别 递归 将左右两部分再次进行分割两半"""递归流程: 直到满足if len(alist) <= 1:之前会一直递归,无法执行到merge函数,满足if len(alist) <= 1:,之后left_half和right_half会被赋值,两个都是只有一个元素的列表此时才能执行到合并函数merge,执行完之后会向递归的上一层的left_half或right_half返回合并后的列表,此时的left_half和right_half的某一个或者全部会变成两个元素的列表然后回再次执行合并函数merge,直到整个递归流程结束,left_half和right_half为最初分开的两半,最后执行合并函数即完成整体合并"""left_half = merge_sort(left_half)right_half = merge_sort(right_half)# 合并左右两部分的序列return merge(left_half,right_half)  # 合并# 定义合并的算法
def merge(left,right):"""用于merge_sort递归合并的简单的合并并排序算法"""# 将排序好的额元素放入空列表中arr = []i=0 # 遍历左边列表中的每个元素j=0 # 遍历右边列表中的每个元素#比较两个列表中的元素 将小的元素先放入arr空列表中while i<len(left) and j<len(right):if left[i] < right[j]:arr.append(left[i])i+=1else:arr.append(right[j])j+=1# 如果右边列表由剩余元素 将它直接插入列表中while j<len(right):arr.append(right[j])j+=1# 如果左边列表由剩余元素 将它直接插入列表中while i < len(left):arr.append(left[i])i += 1return arr

八、二分查找

def binary_search_iter(arr, target):"""在 有序 升序 数组 arr 中查找 target。返回其索引;若不存在返回 -1。"""left, right = 0, len(arr) - 1  # 闭区间 [left, right]while left <= right:  # 区间非空mid = (left + right) // 2if arr[mid] == target:return midelif arr[mid] < target:left = mid + 1  # 去右半边else:right = mid - 1  # 去左半边return -1ls = [1, 2, 5, 7, 9, 11, 13, 17, 19, 20]
print(binary_search_iter(ls, 9))

http://www.dtcms.com/a/559930.html

相关文章:

  • wordpress子目录 多站点互联网平台建设方案
  • 网站开发公司 重庆桓台网站开发
  • 网站实名认证功能怎么做房产网站开发用什么语言好
  • 番禺电子商务网站建设网站建设偶像
  • 高端做网站价格建设厅网站业务系统板块查成绩
  • 有注入漏洞的网站源码做视频网站资源采集
  • 网站最重要的是首页吗制作网页链接的步骤
  • 网站建设买阿里云云服务器百姓网交友征婚
  • 佛山网站建设优化长治长治那有做网站的
  • 商务网站建设评估的指标邯郸网页
  • 中国建设银行网站签名通下载安装成品网站
  • 商会网站模板百度指数搜索榜
  • 网站开发专业前景网站建设需求分析班级
  • 郑州手机网站建设多少钱wordpress 媒体库设置
  • wordpress 博主认证公司网站搜索优化
  • 21. 构造二叉树
  • 银川网站建设一条龙服务建设企业网站e路护航官网下载
  • 开票 网站建设做自己的视频网站
  • 软件公司门户网站模板软件开发培训课件
  • 网站建设易网拓品牌建设的步骤
  • 有人做网站花了10几万最新军事新闻12小时
  • 做公众号微网站请解释网站开发的主要流程
  • 哪里有网站推广软件seo营销型网站
  • 使页面具有动态效果的网站建设技术是基础网站怎么做
  • wordpress设置301重定向wordpress织梦seo
  • 高校网站建设前言跨境电商网站系统开发
  • 网站建设申请百度优化服务
  • 加强检察门户网站建设情况儿童编程
  • 信诺盛世网站无限流量网站建设
  • 毕业设计网站用什么做网站开发需要什么证书