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

python实现k路归并排序

从归并排序中可以衍生出来一个新的问题,关于k路归并排序,给定k个已经排好序的数组,每个数组含有n各元素,要求将这k个数组合并成一个排好序的大数组。在对两路排好序的数组进行归并时候,会用两个指针指向两个数组首元素,每次对指针指向的元素进行比较,把较小的元素放入新数组,同时对应的指针向后移动一个位置,就把这个做法可以推广到k路数组。

添加图片注释,不超过 140 字(可选)

要比较每个数组指针指向的元素,将数值最小的元素放入新数组,可以看到由于每次将元素放入新数组时需要进行k次比对操作,k路数组的元素总数为m=k*n,使用python实现的代码如下:

def  create_k_sorted_arrays(k, n):  #创建k路排好序的数组,每个数组包含n个元素
    begin = 1
    end = n + 1
    arrays=[]
    if k == 0 or n == 0:
        return arrays
    arr_count = 1
    while arr_count <= k:
        array = np.arange(begin, end)
        arrays.append(array)
        arr_count += 1
        begin = end
        end = arr_count * n + 1
    return arrays
arrays = create_k_sorted_arrays(4, 10)
print(arrays)


http://www.kler.cn/news/233870.html

相关文章:

  • 在gtkmm4 中检索子控件 (children)
  • 人工智能|深度学习——使用多层级注意力机制和keras实现问题分类
  • 70.SpringMVC怎么和AJAX相互调用的?
  • 【c++】c++入门(上)
  • 〖大前端 - ES6篇②〗- let和const
  • 11.2 OpenGL可编程顶点处理:细分着色器
  • webgis后端安卓系统部署攻略
  • 【数据分享】1929-2023年全球站点的逐月平均降水量(Shp\Excel\免费获取)
  • 数据结构红黑树
  • 分布式搜索引擎 elasticsearch
  • MySQL-视图(VIEW)
  • 基于Chrome插件的Chatgpt对话无损导出markdown格式(Typora完美显示)
  • 【数据结构】双向链表(链表实现+测试+原码)
  • 练习:鼠标类设计之1_类内容解析
  • JVM-双亲委派机制
  • 一步步建立一个C#项目(连续读取S7-1200PLC数据)
  • 监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项
  • 2024年华为OD机试真题-密码解密-Java-OD统一考试(C卷)
  • 精灵图,字体图标,CSS3三角
  • css2复合选择器
  • 云计算市场分析
  • 深入探索MySQL的虚拟列:发展、原理与应用
  • 吉他学习:右手拨弦方法,右手拨弦训练 左手按弦方法
  • VSCode:替换空行
  • 【计算机网络】协议层次及其服务模型
  • 结构体的大小以及内存对齐问题
  • 搭建yum仓库服务器
  • C++ dfs 的状态表示(五十一)【第十一篇】
  • vue学习——集成sass
  • Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(三)