多年来,我在我的存储库中积累了许多有趣的代码,这些代码来自我参与的不同研究和辅助项目。很多这些代码都基于C,C ++和Objective-C,但最终却从未见过光明,因为它被废弃为大项目或被弃用的功能的一部分。上周我查看了我的旧Objective-C档案,并意识到我有一些非常有趣的一般计算机科学算法的例子,我从未与博客观众分享过。这就是为什么我想写这篇文章,与你(我的博客观众)分享我最近在我的网站的教程部分发布的一些最近的Objective-C算法示例,并简要概述每个部分。我希望你喜欢!
注意:这些算法已经从旧项目移植到macOS Mojave中的新终端应用程序。不应要求Xcode 10和macOS Mojave运行这些示例,Xcode和macOS的任何最新组合都应该有效。
排序算法 ?
排序是关键部分或组织和搜索我认为开发人员认为理所当然的数据。毕竟,现在我们有现代的API帮助我们,有时我觉得这些基础分类技术在计算机科学的成长中迷失了。在下面列出的排序教程中,我列出了3个排序示例; 快速排序,合并排序和插入排序。每个都有自己的用例和自己的陷阱。例如,快速排序据说使用更少的内存,并且可以通过改变数据透视索引的工作方式进行微调,即使它的时间复杂度比合并排序更糟糕。在对可能包含自定义对象的大型集合或数据或集合进行排序时,合并排序被认为是更好的选择。
- 快速排序:https: //www.agnosticdev.com/content/how-perform-quicksort-objective-c
- 合并排序:https: //www.agnosticdev.com/content/how-perform-mergesort-objective-c
- 插入排序:https: //www.agnosticdev.com/content/how-perform-insertion-sort-objective-c
搜索和数据结构 ?
现在您的数据已经排序,现在是时候搜索您的数据了。在我的示例中,我发布了在自定义构建的二叉树数据结构上创建的二进制搜索示例。这些链接将指导您如何构建自定义二进制树数据结构,然后指导您如何遍历树以查找数据。每个都有自己的应用程序,但由于设置树数据结构所需的代码表面区域,我更喜欢二进制搜索。
- 二叉树数据结构:https: //www.agnosticdev.com/content/how-create-binary-tree-objective-c
- 二叉树搜索:https: //www.agnosticdev.com/content/how-search-binary-tree-objective-c
摘要 ⌛️
总而言之,我很高兴我发现了这些旧的Objective-C算法并且能够将它们作为教程发布。我认为它们是任何探索基础计算机科学算法以及如何用Objective-C编程语言实现它们的人的重要资源。我知道我喜欢编写Objective-C,我希望有大型公司以外的开发人员今天仍然使用它。如果您喜欢这些教程中的任何一个,并希望看到我的档案中也有C / C ++版本,请告诉我,我也可以发布它们。感谢阅读,如果您有任何问题的意见或疑虑,请发表评论,我会尽快回复您。
转载自:https://www.agnosticdev.com/blog-entry/objective-c/objective-c-algorithms-and-data-structures