![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
muhlenXi-穆哥
互联网浪潮中卖码维生的一朵小浪花!
展开
-
【排序】快速排序 Swift版本
快速排序快速排序(Quick Sort)简称快排,是由 C. A. R. Hoare 提出的一种排序算法。快速排序的原理是使用 分治(Divide and conquer )策略来把要排序的数组分为两个子序列,然后递归的分组并排序两个子序列,直到数组完成排序。本文为了逻辑清晰,选择序列中间元素为基准值(pivot),当然这个基准值是可以任意选取的。一个长度为 nnn 的序列,平均时间复杂度...原创 2019-04-24 07:19:50 · 292 阅读 · 0 评论 -
【排序】归并排序 Swift 版本
归并排序归并排序 (Merge Sort)是由 冯·诺伊曼 在 1945 年提出的算法。该算法也是采用 分治法 (Divide and Conquer)的策略。归并排序的原理是,首先递归的把当前序列平均分成两组,然后在保持元素顺序的同时将分割后的子序列合并到一起。一个长度为 nnn 的序列,最坏和最好的情况下复杂度均为 O(nlogn)O(n log n)O(nlogn)。算法实现// ...原创 2019-04-24 07:46:13 · 228 阅读 · 0 评论 -
【排序】希尔排序 Swift 版本
希尔排序希尔排序(Shell Sort)也被称为递减增量排序,是插入排序的一种高效改进版本算法,该算法由 Donald Shell 设计并在1959 年公布的。希尔排序的原理是将数组中的全部元素按照步长序列依次分为 mmm 个部分,然后分别在每个部分中进行插入排序,这样一个元素会一次性朝最终位置前进一大步。最后当步长序列取值为 111 时,就是普通的插入排序。步长的选择是希尔排序的重要部分。...原创 2019-04-22 08:12:25 · 219 阅读 · 0 评论 -
【排序】插入排序 Swift版本
插入排序插入排序 是一种简单直观的排序算法。插入排序的灵感可能来自于我们玩牌的经验。当我们摸牌的时候,每摸到一张牌,都会将这张牌插入到其他有序的牌中的适当位置。排序算法(默认是升序)的原理是,计算机在遍历数组中的元素时,认为当前索引左边的元素都是有序的,首先在左边有序的数组中从后往前找出当前数组应该插入的位置,然后依次挪动左边有序元素,给要插入的元素腾出位置,最后将该元素插入到腾空的位置。循...原创 2019-04-22 07:25:50 · 241 阅读 · 0 评论 -
【排序】冒泡排序 Swift版本
冒泡排序冒泡排序(Bubble Sort)的排序方法是在每一轮排序过程中,依次比较相邻元素的大小,如果顺序不满足排序的要求,则交换这两个元素。这样每一轮排序结束后,都能将最大的元素的元素放到最后。一个 包含 n 个元素的数组在最坏的情况下,需要进行 n-1 次排序过程,方能使数组中的元素变得有序。算法实现用 Swift 实现的冒泡排序代码如下所示:/// 冒泡排序 升序func bub...原创 2019-04-21 22:16:51 · 259 阅读 · 0 评论 -
【排序】选择排序 Swift 版本
选择排序选择排序 是一种简单直观的排序算法。排序的主要原理是,遍历元素的过程中,如果能找出该元素到末尾元素区间的最小元素,则将最小元素与该元素进行交换。一个 包含 n 个元素的数组在最坏的情况下,需要进行 n-1 次交换,方能使数组中的元素变得有序。算法实现用 Swift 实现的冒泡排序代码如下所示:/// 选择排序func selectionSort(unsortedArray: i...原创 2019-04-21 22:31:05 · 141 阅读 · 0 评论