- 博客(7)
- 收藏
- 关注
原创 iOS 指纹支付和面容支付
生物信息支付在 iOS App 开发中,或许你需要验证当前设备主人的指纹或者面容信息,在 iOS 系统中,他们统称为本地生物信息鉴定。本地生物信息验证,是通过 Apple 提供的一个 LocalAuthentication 库来完成的。关于这个库的更多信息可以看这里:传送门。鉴定过程第一步:获取生物信息的状态。以下的两种情况,会导致状态不可用。当前设备没有录入指纹或面容指纹或面容验...
2019-04-26 17:56:23 1991
原创 【排序】归并排序 Swift 版本
归并排序归并排序 (Merge Sort)是由 冯·诺伊曼 在 1945 年提出的算法。该算法也是采用 分治法 (Divide and Conquer)的策略。归并排序的原理是,首先递归的把当前序列平均分成两组,然后在保持元素顺序的同时将分割后的子序列合并到一起。一个长度为 nnn 的序列,最坏和最好的情况下复杂度均为 O(nlogn)O(n log n)O(nlogn)。算法实现// ...
2019-04-24 07:46:13 242
原创 【排序】快速排序 Swift版本
快速排序快速排序(Quick Sort)简称快排,是由 C. A. R. Hoare 提出的一种排序算法。快速排序的原理是使用 分治(Divide and conquer )策略来把要排序的数组分为两个子序列,然后递归的分组并排序两个子序列,直到数组完成排序。本文为了逻辑清晰,选择序列中间元素为基准值(pivot),当然这个基准值是可以任意选取的。一个长度为 nnn 的序列,平均时间复杂度...
2019-04-24 07:19:50 311
原创 【排序】希尔排序 Swift 版本
希尔排序希尔排序(Shell Sort)也被称为递减增量排序,是插入排序的一种高效改进版本算法,该算法由 Donald Shell 设计并在1959 年公布的。希尔排序的原理是将数组中的全部元素按照步长序列依次分为 mmm 个部分,然后分别在每个部分中进行插入排序,这样一个元素会一次性朝最终位置前进一大步。最后当步长序列取值为 111 时,就是普通的插入排序。步长的选择是希尔排序的重要部分。...
2019-04-22 08:12:25 233
原创 【排序】插入排序 Swift版本
插入排序插入排序 是一种简单直观的排序算法。插入排序的灵感可能来自于我们玩牌的经验。当我们摸牌的时候,每摸到一张牌,都会将这张牌插入到其他有序的牌中的适当位置。排序算法(默认是升序)的原理是,计算机在遍历数组中的元素时,认为当前索引左边的元素都是有序的,首先在左边有序的数组中从后往前找出当前数组应该插入的位置,然后依次挪动左边有序元素,给要插入的元素腾出位置,最后将该元素插入到腾空的位置。循...
2019-04-22 07:25:50 258
原创 【排序】选择排序 Swift 版本
选择排序选择排序 是一种简单直观的排序算法。排序的主要原理是,遍历元素的过程中,如果能找出该元素到末尾元素区间的最小元素,则将最小元素与该元素进行交换。一个 包含 n 个元素的数组在最坏的情况下,需要进行 n-1 次交换,方能使数组中的元素变得有序。算法实现用 Swift 实现的冒泡排序代码如下所示:/// 选择排序func selectionSort(unsortedArray: i...
2019-04-21 22:31:05 162
原创 【排序】冒泡排序 Swift版本
冒泡排序冒泡排序(Bubble Sort)的排序方法是在每一轮排序过程中,依次比较相邻元素的大小,如果顺序不满足排序的要求,则交换这两个元素。这样每一轮排序结束后,都能将最大的元素的元素放到最后。一个 包含 n 个元素的数组在最坏的情况下,需要进行 n-1 次排序过程,方能使数组中的元素变得有序。算法实现用 Swift 实现的冒泡排序代码如下所示:/// 冒泡排序 升序func bub...
2019-04-21 22:16:51 277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人