news 2026/5/13 4:46:57

跟我一起学“仓颉”算法-分治算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
跟我一起学“仓颉”算法-分治算法

目录

一、分治

二、合并排序

三、小结


一、分治

分治:分而治之。

满足分治算法的条件:

  • 原问题可被分解成若干个规模较小的子问题;
  • 子问题相互独立;
  • 子问题的解可以合并为原问题的解。

二、合并排序

合并排序就是将待排序的大数组分解成待排序的小数组,然后把每个小数组进行排序,最终将排好序的小数组合并成有序的大数组,时间复杂度:O(nlogn)。

package Algorithm func mergeSort(array: Array<Int64>, low: Int64, high: Int64): Array<Int64> { if (low < high) { let mid = low + (high - low)/ 2 mergeSort(array, low, mid) mergeSort(array, mid + 1, high) var newArray = Array<Int64>(high - low + 1, repeat: 0) var i = low var j = mid + 1 var k = 0 while (i <= mid && j <= high) { if (array[i] <= array[j]) { newArray[k] = array[i] i++ k++ } else { newArray[k] = array[j] j++ k++ } } while (i <= mid) { newArray[k] = array[i] i++ k++ } while (j <= high) { newArray[k] = array[j] j++ k++ } return newArray } return array } main(): Int64 { let array = [4, 9, 15, 24, 30, 2, 6, 18, 20] // let array = [1,3,2] println(mergeSort(array, 0, array.size - 1)) return 0 }

三、小结

本章为大家详细的介绍了仓颉数据结构与算法中分治算法的内容,下一章,为大家带来分治算法练习题的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉数据结构与算法有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 4:46:08

InputTip:轻量级输入框提示与验证组件的设计与实践

1. 项目概述与核心价值最近在开发一个需要大量用户输入的表单应用时&#xff0c;我又一次被那个老问题给绊住了&#xff1a;用户经常在填写过程中迷失方向&#xff0c;不知道当前输入框的具体要求&#xff0c;或者提交后才发现某个字段格式不对&#xff0c;体验非常糟糕。为了解…

作者头像 李华
网站建设 2026/5/13 4:46:08

@godaddy/terminus TypeScript支持:完整的类型定义和使用指南

godaddy/terminus TypeScript支持&#xff1a;完整的类型定义和使用指南 【免费下载链接】terminus Graceful shutdown and Kubernetes readiness / liveness checks for any Node.js HTTP applications 项目地址: https://gitcode.com/gh_mirrors/te/terminus 在现代No…

作者头像 李华
网站建设 2026/5/13 4:46:05

如何自定义tsconfig-paths配置:高级参数和扩展功能教程

如何自定义tsconfig-paths配置&#xff1a;高级参数和扩展功能教程 【免费下载链接】tsconfig-paths Load node modules according to tsconfig paths, in run-time or via API. 项目地址: https://gitcode.com/gh_mirrors/ts/tsconfig-paths tsconfig-paths是一个强大的…

作者头像 李华
网站建设 2026/5/13 4:45:05

终极LFI漏洞利用工具LFISuite:8种攻击方式自动扫描与反向Shell

终极LFI漏洞利用工具LFISuite&#xff1a;8种攻击方式自动扫描与反向Shell 【免费下载链接】LFISuite Totally Automatic LFI Exploiter ( Reverse Shell) and Scanner 项目地址: https://gitcode.com/gh_mirrors/lf/LFISuite LFISuite是一款功能强大的自动化LFI&#…

作者头像 李华
网站建设 2026/5/13 4:42:14

从理论到实践:LQR在二自由度云台控制系统中的参数整定与仿真验证

1. LQR控制器的工程实践意义 二自由度云台在工业自动化、智能监控等领域应用广泛&#xff0c;但传统PID控制往往难以兼顾快速响应和稳定性的双重需求。LQR&#xff08;线性二次型调节器&#xff09;作为现代控制理论中的经典方法&#xff0c;通过优化目标函数实现对系统的精确控…

作者头像 李华
网站建设 2026/5/13 4:39:06

GOAT-PEFT:模块化PEFT工具箱,让大模型微调像搭积木一样简单

1. 项目概述&#xff1a;当大模型遇上“轻量级”微调如果你最近在关注大语言模型&#xff08;LLM&#xff09;的应用落地&#xff0c;尤其是想在有限的算力资源下&#xff0c;让一个像Llama、ChatGLM这样的“庞然大物”学会你的专属知识或特定任务&#xff0c;那么“微调”这个…

作者头像 李华