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

网站flash引导页下载在线设计平台的缺点

网站flash引导页下载,在线设计平台的缺点,网站框架,湖南省建设厅网站首页简介#xff1a;计数排序是一个非基于比较的排序算法#xff0c;该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时#xff0c;它的复杂度为Ο(nk)#xff08;其中k是整数的范围#xff09;#xff0c;快于任何比较排序算法。当然这是一种…简介计数排序是一个非基于比较的排序算法该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时它的复杂度为Ο(nk)其中k是整数的范围快于任何比较排序算法。当然这是一种牺牲空间换取时间的做法而且当O(k)O(nlog(n))的时候其效率反而不如基于比较的排序基于比较的排序的时间复杂度在理论上的下限是O(nlog(n)), 如归并排序堆排序。 历史攻略 Python基础入门 1 - 230题 Golang基础练习 1 - 40题 算法思想 计数排序对输入的数据有附加的限制条件 1、输入的线性表的元素属于有限偏序集S 2、设输入的线性表的长度为n|S|k表示集合S中元素的总数目为k则kO(n)。 在这两个条件下计数排序的复杂性为O(n)。 计数排序的基本思想是对于给定的输入序列中的每一个元素x确定该序列中值小于x的元素的个数此处并非比较各元素的大小而是通过对元素值的计数和计数值的累加来确定。一旦有了这个信息就可以将x直接存放到最终的输出序列的正确位置上。例如如果输入序列中只有17个元素的值小于x的值则x可以直接存放在输出序列的第18个位置上。当然如果有多个元素具有相同的值时我们不能将这些元素放在输出序列的同一个位置上因此上述方案还要作适当的修改。 Python语言描述 def count_sort(input_list):length len(input_list)if length 2:return input_listmax_num max(input_list)count [0] * (max_num 1)for element in input_list:count[element] 1output_list []for i in range(max_num 1):for j in range(count[i]): # count[i]表示元素i出现的次数如果有多次通过循环重复追加 output_list.append(i)return output_list案例源码5题 # -*- coding: utf-8 -*- # time: 2023/12/17 10:18 # file: count_sort_demo.py # 公众号: 玩转测试开发from typing import List# 1051. 高度检查器 # 学校打算为全体学生拍一张年度纪念照。根据要求学生需要按照非递减的高度顺序排成一行。 # 排序后的高度情况用整数数组expected表示其中expected[i]是预计排在这一行中第i位的学生的高度下标从0开始。 # 给你一个整数数组heights 表示当前学生站位的高度情况。heights[i]是这一行中第i位学生的高度下标从0开始。 # 返回满足heights[i] ! expected[i]的下标数量 。 # # 示例1输入heights [1, 1, 4, 2, 1, 3] # 输出3 # 解释 # 高度[1, 1, 4, 2, 1, 3] # 预期[1, 1, 1, 2, 3, 4] # 下标 # 2 、4 、5 # 处的学生高度不匹配。 # 示例2 # 输入heights [5, 1, 2, 3, 4] # 输出5 # 解释 # 高度[5, 1, 2, 3, 4] # 预期[1, 2, 3, 4, 5] # 所有下标的对应学生高度都不匹配。 # 示例3 # 输入heights [1, 2, 3, 4, 5] # 输出0 # 解释 # 高度[1, 2, 3, 4, 5] # 预期[1, 2, 3, 4, 5] # 所有下标的对应学生高度都匹配。class Solution1051:def heightChecker(self, heights: List[int]) - int:# 先赋值给其他# 排序本身# 遍历对比n heights[:]heights.sort()count 0for i, v in enumerate(n):if v ! heights[i]:count 1return counts1051 Solution1051() r1051 s1051.heightChecker([1, 1, 4, 2, 1, 3]) print(fr1051:{r1051}) # r1051:3# 561. 数组拆分 # 给定长度为 2n 的整数数组 nums 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) # 使得从 1 到 n 的 min(ai, bi) 总和最大。 # 返回该 最大总和 。 # 示例 1 # 输入nums [1,4,3,2] # 输出4 # 解释所有可能的分法忽略元素顺序为 # 1. (1, 4), (2, 3) - min(1, 4) min(2, 3) 1 2 3 # 2. (1, 3), (2, 4) - min(1, 3) min(2, 4) 1 2 3 # 3. (1, 2), (3, 4) - min(1, 2) min(3, 4) 1 3 4 # 所以最大总和为 4 # 示例 2 # 输入nums [6,2,6,5,1,2] # 输出9 # 解释最优的分法为 (2, 1), (2, 5), (6, 6). min(2, 1) min(2, 5) min(6, 6) 1 2 6 9class Solution561:def arrayPairSum(self, nums: List[int]) - int:# 排序。一次22取。排序后双数位为最小。隔取求和nums.sort()count int(len(nums) / 2)return sum([i for i in nums[0::2]])s561 Solution561() r561 s561.arrayPairSum([1, 1, 4, 2, 1, 3]) print(fr561:{r561}) # r561:5# 1122. 数组的相对排序 # 给你两个数组arr1 和 arr2arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中。 # 对 arr1 中的元素进行排序使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。 # 未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 # 示例 1 # 输入arr1 [2,3,1,3,2,4,6,7,9,2,19], arr2 [2,1,4,3,9,6] # 输出[2,2,2,1,4,3,3,9,6,7,19] # 示例 2: # 输入arr1 [28,6,22,8,44,17], arr2 [22,28,8,6] # 输出[22,28,8,6,17,44]class Solution1122:def relativeSortArray(self, arr1: List[int], arr2: List[int]) - List[int]:# 字典arr1的元素和个数# 遍历arr2,将符合的全部加入结果列表。加入后移除字典中对应的键值对。# 遍历字典。将剩余的值重新排序并入结果列表import collectionstmp_dict dict(collections.Counter(arr1))result []for i in arr2:if i in tmp_dict:loop tmp_dict[i]for count in range(loop):result.append(i)tmp_dict.pop(i)others [k for k, v in tmp_dict.items() for i in range(v)]others.sort()return result otherss1122 Solution1122() r1122 s1122.relativeSortArray([2, 3, 1, 3, 2, 4, 6, 7, 9, 2, 19], [2, 1, 4, 3, 9, 6]) print(fr1122:{r1122}) # r1122:[2, 2, 2, 1, 4, 3, 3, 9, 6, 7, 19]# 912. 排序数组 # 给你一个整数数组 nums请你将该数组升序排列。 # 示例 1 # 输入nums [5,2,3,1] # 输出[1,2,3,5] # 示例 2 # 输入nums [5,1,1,2,0,0] # 输出[0,0,1,1,2,5]class Solution912:def sortArray(self, nums: List[int]) - List[int]:return sorted(nums)s912 Solution912() r912 s912.sortArray([2, 1, 4, 3, 9, 6]) print(fr912:{r912}) # r912:[1, 2, 3, 4, 6, 9]# 274. H 指数 # 给你一个整数数组 citations 其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 # 根据维基百科上 h 指数的定义h 代表“高引用次数” 一名科研人员的 h 指数 是指他她至少发表了 h 篇论文 # 并且 至少 有 h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值h 指数 是其中最大的那个。 # 示例 1 # 输入citations [3,0,6,1,5] # 输出3 # 解释给定数组表示研究者总共有 5 篇论文每篇论文相应的被引用了 3, 0, 6, 1, 5 次。 # 由于研究者有 3 篇论文每篇 至少 被引用了 3 次其余两篇论文每篇被引用 不多于 3 次所以她的 h 指数是 3。 # 示例 2 # 输入citations [1,3,1] # 输出1class Solution274:def hIndex(self, citations: List[int]) - int:loop len(citations)if sum(citations) 0:return 0if loop 1:return 1for i in range(loop, 0, -1):if sum([1 for j in citations if j i]) i:return is274 Solution274() r274 s274.hIndex([2, 1, 4, 3, 9, 6]) print(fr274:{r274}) # r274:3运行结果 r1051:3 r561:5 r1122:[2, 2, 2, 1, 4, 3, 3, 9, 6, 7, 19] r912:[1, 2, 3, 4, 6, 9] r274:3总结计数排序算法没有用到元素间的比较它利用元素的实际值来确定它们在输出数组中的位置。因此计数排序算法不是一个基于比较的排序算法从而它的计算时间下界不再是O(nlogn)。另一方面计数排序算法之所以能取得线性计算时间的上界是因为对元素的取值范围作了一定限制即kO(n)。如果kn2,n3,…就得不到线性时间的上界。此外我们还看到由于算法第4行使用了downto语句经计数排序输出序列中值相同的元素之间的相对次序与他们在输入序列中的相对次序相同换句话说计数排序算法是一个稳定的排序算法。
http://www.pierceye.com/news/209425/

相关文章:

  • 邢台专业做网站价格信息流广告是什么
  • 网站开发的母的目的和意义.建设购物平台网站
  • 立方米网站建设做淘宝客网站用什么程序好
  • 怎样做网站挣钱建筑资料软件
  • 涿州建设局网站苏州市高新区建设局网站
  • 个人soho要怎么做企业网站成都包装设计公司
  • 网站开发 chrome浏览器崩溃ruhe用dw做网站
  • 全屏网站 图片优化个人网站cms系统
  • 做我女朋友程序网站邵东做网站
  • 建设网站如何挂到网上wordpress首页添加幻灯
  • 汕头正规网站建设模板总部城乡建设网站 资料员
  • vs 2017c 怎么建设网站网站建设的数字化和互联网化
  • 南昌网站设计公司海南营销网站建设
  • 购物网站素材个人搭建网站教程
  • 青岛网站建设哪里好模板建站服务公司
  • 青色网站欣赏wordpress中文购物
  • 建站培训全国住房与城乡建设部网站
  • 唐山网站建设方案策划沧州网站建设联系电话
  • 网页制作和网站开发实验报告logo设计品牌
  • 摄影后期教程网站百度指数1000搜索量有多少
  • wp网站建设模板什么是网站的原型
  • 园林绿化网站建设上海著名室内设计公司
  • 大连市住房与城乡建设部网站公司要制作网站
  • 郑州做网站七彩科技企业网站做的漂亮
  • 如何用ps做网站页面设计企业网站备案价格
  • 禅城网站建设价格青岛企业自助建站系统
  • 平阳住房和城乡建设厅网站建设银行龙卡信用卡在境外网站支付
  • 关于网站开发的论文软件开发合同模板免费
  • 军队房地产与建设工程法律实务在哪个网站可以购买深圳市盐田区住房建设局网站
  • 网站虚拟主机空间喊别人做的网站不肯给代码