08 2021 档案
Swift- 设置 UILabel 内边距
摘要:摘要 拿来即用短时间效率虽然挺高的,但是拿来的东西没有消化一次,就无法得心应手的使用它。 这次的探索思路就是,查询官方文档,设置不同的值测试单个方法中参数的变化,之后测试两个方法的执行顺序,处理的思路,最后思考总结。 在总结方法的处理逻辑时,使用伪代码的方式梳理方法的执行思路。避免解释文本太多,增加
阅读全文
数据结构与算法-排序(十)桶排序(Bucket Sort)
摘要:摘要 桶排序和基数排序类似,相当于基数排序的另外一种逻辑。它是将取值范围当做创建桶的数量,桶的长度就是序列的大小。通过处理比较元素的数值,把元素放在桶的特定位置,然后遍历桶,就可以得到有序的序列。 逻辑 创建一定数量的桶(数组或者链表)。制定规则将序列中的元素均匀地分布在不同的桶中。然后对每个桶内排
阅读全文
数据结构与算法-排序(九)基数排序(Radix Sort)
摘要:摘要 基数排序是进行整数序列的排序,它是将整数从个位开始,直到最大数的最后一位截止,每一个进位(比如个位、十位、百位)的数进行排序比较。 每个进位做的排序比较是用计数排序的方式处理,所以基数排序离不开计数排序。 逻辑 对整数依次从个位数、十位数...进行排序。基数排序非常适合用于整数排序 对每一轮的
阅读全文
数据结构与算法-排序(八)计数排序(Counting Sort)
摘要:摘要 计数排序本质就是统计不同元素出现的次数,然后将元素依次从小到大放置,每个元素看统计的次数,就紧挨着放置几个同样的元素。 看似简单的处理,在算法中,会依据统计的元素次数推算出每个元素的索引位置,这就是算法的魅力。 逻辑 统计每个整数在序列中出现的次数,进而推导出每个整数在有序序列中的索引。 这是
阅读全文
数据结构与算法-排序(七)希尔排序(Shell Sort)
摘要:摘要 看希尔排序需要先想象出一个二维的矩阵,在这个矩阵中,有多少列数据全看步长(一定的规则得到)。处理完之后,就再接着用另一个步长组成矩阵处理。直到步长全部使用完。 这里的巧妙之处就是没有把序列先处理成二维数组,而是通过与步长配合,依旧在一维的序列中处理。 逻辑 希尔排序相当于把序列当作一个矩阵,逐
阅读全文
数据结构与算法-排序(六)堆排序(Heap Sort)
摘要:摘要 堆排序需要用到一种数据结构,大顶堆。大顶堆是一种二叉树结构,本质是父节点的数大于它的左右子节点的数,左右子节点的大小顺序不限制,也就是根节点是最大的值。 这里就是不断的将大顶堆的根节点的元素和尾部元素交换,交换到大顶堆没有可以被交换的元素为止。后面再说大顶堆的逻辑。 逻辑 首先将序列通过大顶堆
阅读全文
数据结构与算法-排序(五)快速排序(Quick Sort)
摘要:摘要 快速排序和归并排序有一些相似的地方,就是在中间位置拆分成两部分,分别做处理。 这里也是用到递归思想,但是与归并排序的先拆分再排序处理的思想不同,快速排序是先处理排序,然后再拆分。 本质 每一次确定一个轴点元素,然后和序列中的其他元素比较,放在元素的左右任何位置位置,完成之后,这个轴点元素的位置
阅读全文
数据结构与算法-排序(四)归并排序(Merge Sort)
摘要:摘要 归并排序就是将序列不断向下拆分成最小的序列(只有两个元素),然后从这个地方开始排序,然后向上合并成新的序列和排序,直到合并为一个序列(这时,这个序列就是有序的) 代码实现上用了递归的思路处理,归并排序在时间复杂度上比前3种有优势,具体可以用到什么样的场景,暂时没有想到,就先学习下逻辑,增长见识
阅读全文
数据结构与算法-排序(三)插入排序(Insertion Sort)
摘要:摘要 插入排序是先假定一部分序列是有序的,这部分序列也可以是 0 个元素。另外需要排序的元素就一个个的插入到这个有序的序列中。因为要插入的序列本来就是有序的,所以只要找到合适的插入位置,那么就可以结束这轮循环。 代码中处理的就是界定遍历边界,和减少遍历次数,提高效率。这里的有序序列是元素从左开始,由
阅读全文
浙公网安备 33010602011771号