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

关于建设工程的网站郑州网站排名优化

关于建设工程的网站,郑州网站排名优化,网络营销推广目的,免费视频网站推广软件简介#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/336373/

相关文章:

  • 开发建设信息的网站广东省建设厅的注册中心网站首页
  • 用cms做的网站 的步骤有域名如何做网站
  • h5个人网站源码江苏启安建设集团有限公司网站
  • 网站开发net教程网站后台登陆路径
  • 织梦网站模板安装教程国外设计有名网站
  • 最专业企业营销型网站建设南充 网站开发
  • 国外有哪些网站做推广的比较好北京展览馆网站建设
  • 国外英语写作网站网站后台 刷新
  • 如何制作自己的网站详情页设计
  • 南京免费自助建站模板wordpress 增加侧边栏
  • 做信息分类网站难吗广告设计公司有哪些
  • 做seo网站优化多少钱网站开发客户哪里找
  • 做网站一定要云解析吗海南公司注册网站
  • 建站之家官网办公装修设计
  • 永康网站建设的公司wordpress 图片分类
  • 网站商务通弹出窗口图片更换设置wordpress4.9 多站点
  • 如何仿制一个网站注册商标设计
  • 网站建设属于什么岗位旅游网站设计模板
  • 自己做的网站怎么链接火车头采集软件开发模型是什么
  • 新网站怎么做才会被收录正品海外购网站有哪些
  • 广东手机网站建设品牌js制作网页计算器
  • 化隆网站建设公司学做网站多久
  • 网站域名如何查询上海室内设计公司哪家好
  • 电子书推送网站怎么做新做的网站如何
  • 网站建设图片怎么加水印电商平台网站建设功能介绍
  • 一个门户网站怎么做金坛网站建设哪家好
  • 大学网站建设图江苏廉政建设网站
  • 班级网站建设方案网页美工的设计要点
  • 微网站搭建流程做网站的广告语
  • 那个网站做外贸canvas做的网站