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

贵州安顺做公司网站/sem技术培训

贵州安顺做公司网站,sem技术培训,wordpress全景插件,软件工程毕业论文最小的k个数 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路:可以先利用排序算法进行排序,然后取出k个最小的数。排序算法有冒泡、选择、堆排序、归并、快排等&#xff…

最小的k个数

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

思路:可以先利用排序算法进行排序,然后取出k个最小的数。排序算法有冒泡、选择、堆排序、归并、快排等,为了练习这种排序算法,我们用这些算法一一求解本题。

class Solution:def GetLeastNumbers_Solution(self, tinput, k):# write code hereif k > len(tinput) or k < 0:return []#堆排序#建立最大堆def max_heap(tinput,start,end):root = startwhile True:child = root * 2 + 1if child > end:breakif child + 1 <= end and tinput[child] <= tinput[child+1]:child = child + 1if tinput[child] > tinput[root]:tinput[child],tinput[root] = tinput[root],tinput[child]root = childelse:break#堆调整def adjust_heap(tinput):n = len(tinput)//2 - 1for start in range(n,-1,-1):max_heap(tinput,start,len(tinput)-1)for end in range(len(tinput)-1,0,-1):tinput[end],tinput[0] = tinput[0],tinput[end]max_heap(tinput,0,end-1)return tinputnums = adjust_heap(tinput)return nums[:k]

        #冒泡排序'''if k > len(tinput) or k < 0:return []for i in range(len(tinput)-1):for j in range(len(tinput)-i-1):if tinput[j]>tinput[j+1]:tinput[j],tinput[j+1] = tinput[j+1],tinput[j]return tinput[:k]'''

 		# 选择排序"""if k > len(tinput) or k < 0:return []for i in range(len(tinput)):min = ifor j in range(i+1,len(tinput)):  #寻找最小元素的下表if tinput[j] < tinput[min]:min = jtinput[min],tinput[i] = tinput[i],tinput[min] #交换return tinput[:k]"""

# 快排序,利用双指针从左右两个方向进行滑动,把小于基准值的元素放在左边,大于的放在右边,记录中间元素的值,然后再和基准值进行调换位置class Solution:def GetLeastNumbers_Solution(self, tinput, k):# write code hereif k > len(tinput) or k < 0:return []#快排序def patition(A,low,high):i = lowj = highx = A[low]while i < j:while(i<j and A[j]>=x):j -= 1while(i<j and A[i]<=x):i += 1if i != j:A[i],A[j] = A[j],A[i]A[low],A[i] = A[i],A[low]return idef quicksort(A,low,high):if low < high:i = patition(A,low,high)quicksort(A,low,i-1)quicksort(A,i+1,high)return AA = quicksort(tinput,0,len(tinput)-1)return A[:k]

#归并排序:不断划分数组,直到每个数组只有一个元素,然后进行合并。
class Solution:def GetLeastNumbers_Solution(self, tinput, k):# write code hereif k > len(tinput) or k < 0:return []#归并排序def merge(left,right):result = []i,j = 0,0while i<len(left) and j<len(right):if left[i]<right[j]:result.append(left[i])i += 1else:result.append(right[j])j += 1while i != len(left):result.append(left[i])i += 1while j != len(right):result.append(right[j])j += 1return resultdef mergeSort(nums):if len(nums) < 2:return numselse:middle = len(nums)//2left = mergeSort(nums[:middle])right = mergeSort(nums[middle:])return merge(left,right)A = mergeSort(tinput)return A[:k]
http://www.lbrq.cn/news/1603855.html

相关文章:

  • 在哪里找人做网站靠谱/媒体宣传推广方案
  • 自己这么做网站/怎么开发网站
  • 青岛市住房和城乡建设局网站/重庆森林壁纸
  • wordpress 404自定义/网站优化是什么意思
  • wordpress精致主题/长沙网站seo公司
  • 运营商网站登录注册/公司个人怎么做网络推广
  • 购物网站建设成本/专业做网站官网
  • 抖音代运营会不会看到以往的数据/长沙百度搜索排名优化
  • 购物车网站设计/全网营销推广案例
  • 做淘客都有什么网站/cfa三级和一二级关系大吗
  • 海洋高端的专业做网站/域名注册流程和费用
  • 株洲网站制作建设/b2b网站有哪些平台
  • 西安商城网站制作/百度数字人内部运营心法曝光
  • 网站死链/迈步者seo
  • 天津住房和城乡建设厅官方网站/网址外链平台
  • 内衣网站建立/做百度推广多少钱
  • 建设部网站建筑工程质保期/长春做网站公司长春seo公司
  • 如何建网站教程/可以看国外网站的浏览app
  • 各大网站投稿/员工培训课程
  • 网站为什么没有排名了/seo网站内部优化
  • 道真县城乡建设局网站/苏州网站制作开发公司
  • 外国做袜子的网站/线上推广具体应该怎么做
  • 做自媒体查找素材的网站/网站seo优化课程
  • 国务院关于网站建设/百度app安装
  • 小白测评做网站/百度 营销中心
  • 如何在电脑上建立网站/谷歌下载
  • 中国日报网英文官方网站建设/中国制造网网站类型
  • 南通网站建设系统方案/西安网络推广外包公司
  • 手机怎样做网站/网站关键词优化建议
  • 网络专业的网站建设/福州seo网络推广
  • 【PHP】对比两张图片的相似度
  • Android工程命令行打包并自动生成签名Apk
  • 【LeetCode刷题指南】--对称二叉树,另一颗树的子树
  • Redis实战(7)-- 高级特性 Redis Stream数据结构与基础命令
  • Celery-分布式任务队列
  • RAWINPUT避坑指南(涉及GetRawInputData/GetRawInputBuffer)