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

原创排序算法 SplitMergeSort:一种非二分、非传统分治的全新排序思路

OriginalSort-Algorithm

原创拆分-归并排序算法(SplitMergeSort),由zuimengyu设计.
一种全新思路的递归排序算法,原创结构,非传统分治/二分/快排体系。
该算法通过贪心递增拆分策略,将数组拆分为自然递增序列 A 与待递归序列 B,仅对 B 进行递归处理,最后通过双指针归并完成排序。
核心特点
完全独立原创
结构清晰,逻辑简单但效率可优化至 O(n log n)
回溯阶段采用双指针线性归并,时间复杂度 O(n)

时间复杂度

  • 最好情况:O(n)(数组已有序)
  • 最坏情况:O(n²)(完全逆序)
  • 平均情况:O(n²)

import java.util.ArrayList;
import java.util.List;

public class SplitMergeSort {

public static void main(String[] args) { List<Integer> arr = new ArrayList<>(); arr.add(5); arr.add(8); arr.add(16); arr.add(7); arr.add(2); arr.add(19); arr.add(4); arr.add(18); arr.add(79); arr.add(25); arr.add(49); arr.add(33); arr.add(27); arr.add(18); System.out.println("排序前:" + arr); List<Integer> sorted = yourSort(arr); System.out.println("排序后:" + sorted); } public static List<Integer> yourSort(List<Integer> arr) { if (arr == null || arr.size() <= 1) { return new ArrayList<>(arr); } List<Integer> A = new ArrayList<>(); List<Integer> B = new ArrayList<>(); for (int num : arr) { if (A.isEmpty()) { A.add(num); } else { if (num < A.get(A.size() - 1)) { B.add(num); } else { A.add(num); } } } List<Integer> sortedB = yourSort(B); return mergeTwoSorted(A, sortedB); } private static List<Integer> mergeTwoSorted(List<Integer> a, List<Integer> b) { List<Integer> res = new ArrayList<>(); int i = 0, j = 0; while (i < a.size() && j < b.size()) { if (a.get(i) < b.get(j)) { res.add(a.get(i++)); } else { res.add(b.get(j++)); } } while (i < a.size()) res.add(a.get(i++)); while (j < b.size()) res.add(b.get(j++)); return res; }

}

http://www.jsqmd.com/news/485306/

相关文章:

  • 显存暴降92%!哈工大为线性注意力开辟了新道路
  • 浮点STM32F4电机控制:磁链观测器与VESC中的0速闭环启动实现方法
  • 首次全年盈利,同比增长453%!寒武纪2025年报很亮眼
  • 上海专业屋顶防水补漏服务商权威测评:聚焦本地实力与持久保障的TOP3选择 - shruisheng
  • 【效率神器】全网最好用的CNC串联软件,智捷CNC一键串联工具发布,让加工效率狂飙!
  • 基于单片机与矩阵按键的门禁系统Proteus仿真程序:密码验证与电磁锁控制
  • LLM与Agent术语大解析:从基础到前沿,测测你了解多少?
  • 梳理九江市有机肥生产企业,生物有机肥制造企业如何选择 - 工业品网
  • 纯前端实现科幻级交互!Three.js 结合 MediaPipe 打造 3D 手势粒子引擎 (附源码与在线演示)
  • windows下openclaw的操作指令有哪些?
  • COMSOL生成三维多孔介质
  • 孩子独立后,父母最难的一关:把卡住的人生“重启”
  • 科研虾LabClaw接管实验室!斯坦福和普林斯顿重新定义人机协作边界
  • 【C++】C++入门基础
  • 清单来了:9个AI论文工具测评!本科生毕业论文写作必备清单
  • STL——迭代器
  • BeanFactory与FactoryBean区别详解
  • 第二篇:大模型提示工程(Prompt Engineering)高级调优与前沿策略
  • 分享一款高颜值强大的uniapp组件库-图鸟组件库
  • 为什么四年级才建议开始学习C++?很多家长都问早了
  • 英伟达龙虾模型开源,12B激活登上成功率全球第四
  • vectorbt-案例学习-1 对出场条件的探索
  • 部署RHCSA9.7、并完成优化
  • SAM2:使用mask作为提示输入,实现VOS视频分割
  • Meta甩出4款推理芯片,软硬协同两年算力暴涨25倍
  • 笨鸟先飞之python基础总结
  • AI大模型教程(2026最新)从零基础入门到精通,一篇收藏全掌握!
  • 测试文章发布
  • MATLAB R2018A环境下基于基尼相关性的频域地震盲反褶积方法
  • 小程序毕业设计-基于微信小程序的乡村治理数字化平台的设计与实现