首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
算法与数据结构(十七) 基数排序(Swift 3.0版)
】的更多相关文章
算法与数据结构(十七) 基数排序(Swift 3.0版)
前面几篇博客我们已经陆陆续续的为大家介绍了7种排序方式,今天博客的主题依然与排序算法相关.今天这篇博客就来聊聊基数排序,基数排序算法是不稳定的排序算法,在排序数字较小的情况下,基数排序算法的效率还是比较高的.今天就来聊一下基数排序算法的原理以及代码的具体实现. 一.基数排序算法示意图 下方的基数排序算法的实现是利用"桶"来实现的,首先我们创建10个桶,然后按照基数入桶,基数的取值是从数字的低位到高位以此取值.我们还是以[62, 88, 58, 47, 62, 35, 73, 51, 9…
算法与数据结构(十六) 快速排序(Swift 3.0版)
上篇博客我们主要聊了比较高效的归并排序算法,本篇博客我们就来介绍另一种高效的排序算法:快速排序.快速排序的思想与归并排序类似,都是采用分而治之的方式进行排序的.快速排序的思想主要是取出无序序列中第一个值,然后通过比较将比该值小的元素放到该值的前方,将比该值大的元素放在该值的后方.这样一来该值前方的数据都要比该值小,该值后方的数据都要比该值大.然后再次对前半部分和后边半部分无序的数列进行上述操作,这样不断的操作,无序的序列的规模不断被缩小.等问题的规模被缩小到一定程度后,我们的序列就变的有序了.…
算法与数据结构(十五) 归并排序(Swift 3.0版)
上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容.归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其拆分的足够小.当拆分的数组中只有一个元素时,则这个拆分的数组是有序的.然后我们将这些有序的数组进行两两合并,在合并过程中进行比较,合并生成的新的数组仍然是有序的.然后再次将合并的有序数组进行合并,重复这个过程,知道整个数组是有序的. 下方我们先给出两个有序数组合并的示意图以及代码,然后给出归并排序的相关内容.归并排序其实就是拆分+合并.废…
算法与数据结构(十四) 堆排序 (Swift 3.0版)
上篇博客主要讲了冒泡排序.插入排序.希尔排序以及选择排序.本篇博客就来讲一下堆排序(Heap Sort).看到堆排序这个名字我们就应该知道这种排序方式的特点,就是利用堆来讲我们的序列进行排序."堆"其实就是一种有着特定结构的完全二叉树,下方将会详细的介绍一下堆.本篇博客讲的就是堆排序,首先我们先对大顶堆,小丁堆进行介绍,然后构建堆,最后利用堆的特性对我们的数据序列进行排序. 下方我们依然是先给出相应内容的示意图,然后给出相应的代码实现,最后就是测试用例了.还是那句话,废话少说,进入今天…
Swift互用性:与 Cocoa 数据类型共舞(Swift 2.0版)-b
本节内容包括: 字符串(Strings) 数值(Numbers) 集合类(Collection Classes) 错误(Errors) Foundation数据类型(Foundation Data Types) Foundation函数(Foundation Functions) Core Foundation 作为对 Objective-C 互用性(互操作性)的一部分,Swift提供快捷高效的方式来处理 Cocoa 数据类型. Swift 会自动将一些 Objective-C 类型转换为 Sw…
Swift互用性: 使用Objective-C特性编写Swift类(Swift 2.0版)-b
本节包括内容: 继承Objective-C的类(Inheriting from Objective-C Classes) 采用协议(Adopting Protocols) 编写构造器和析构器(Writing Initializers and Deinitializers) 集成Interface Builder(Integrating with Interface Builder) 指明属性特性(Specifying Property Attributes) 实现Core Data Manage…
Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备
这是一个正在研发的API或技术的概要文件,苹果公司提供这些信息主要是为了帮助你通过苹果产品使用这些技术或者编程接口而做好计划,该信息有可能会在未来发生改变,本文当中提到的软件应该以最终发布的操作系统测试和最终文档为准,未来有可能会提供新版本的文档信息. Swift 被设计用来无缝兼容 Cocoa 和 Objective-C .在 Swift 中,你可以使用 Objective-C 的 API(包括系统框架和你自定义的代码),你也可以在 Objective-C中 使用 Swift 的 API.这种…
Swift互用性:与 C的API交互(Swift 2.0版)-b
节包含内容: 基本数据类型(Primitive Types) 枚举(Enumerations) 指针(Pointer) 全局常量(Global Constants) 预处理指令(Preprocessor Directives) 作为与Objective-C语言的互用性的一部分,Swift也对一些C语言的类型和特性保持了兼容性.如果你的代码有需要,Swift也提供了一些方式来使用常见的C结构和模式. 基本数据类型 Swift提供了一些与C语言基本类型如char,int,float和double等的…
Swift互用性:采用Cocoa设计模式(Swift 2.0版)-b
本页包含内容: 委托(Delegation) 错误处理(Error Handling) 键值观察(Key-Value Observing) Target-Action模式(Target-Action) 类型匹配与统一规范(Introspection) API 可用性 使用 Cocoa 现有的一些设计模式,是帮助开发者开发一款拥有合理设计思路.稳定的性能.良好的可扩展性应用的有效方法之一.这些模式都依赖于在 Objective-C 中定义的类.因为 Swift 与 Objective-C 的互用性…
Swift互用性:与 Objective-C 的 API 交互(Swift 2.0版更新)-备
本页包含内容: 初始化 可失败初始化 访问属性 方法 id 兼容性(id Compatibility) 空值和可选值 扩展(Extensions) 闭包(Closures) 比较对象 Swift 类型兼容性 动态分发 轻量级泛型 Objective-C 选择器(Selectors) 互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言.当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 C…