算法
文章平均质量分 72
u014753478
The advance of technology is based on making it fit in so that you don't really even notice it, so it's part of everyday lift.
展开
-
Redis集群中的数据分区方案
数据分区方案: 数据分区有顺序分区、哈希分区等,其中哈希分区由于其天然的随机性,使用广泛;redis集群的分区方案就是哈希分区的一种。 哈希分区的基本思路:对数据的特征值(如key)进行分区,然后根据哈希值决定数据落在哪个节点。常见的哈希分区包括:哈希取余分区,一致性哈希分区,带虚节点的一致性哈希分区等。 衡量数据分区方法的好坏标准很多,其中比较重要的两个因素是:(1)数据分布是否均匀(2)增加或删除节点对数据分区的影响。由于哈希的随机性,哈希分区基本可以保证数据分部均...原创 2021-06-27 14:10:35 · 413 阅读 · 1 评论 -
稳定排序和不稳定排序
排序算法稳定性的定义: 通俗地讲就是能保证排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。如果是不稳定排序,则需要第二次排序,会增加系统开销。 几种常见排序算法稳定性分析: 选择排序: 举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。 冒泡排序: 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两原创 2021-03-01 11:02:44 · 320 阅读 · 0 评论 -
堆排序以及在java中的应用
堆排序 1. 堆排序的概念: (1)堆排序是利用堆的数据结构设计的一种排序算法,是一种树形选择排序方法; (2)堆排序是一种不稳定排序,也就是说对于相同大小的数,排序后他们的相对位置会发生变化; (3) 堆是具有以下性质的完全二叉树: 每个节点的值都大于或者等于其左右孩子节点的值,成为大顶堆;每个节点的值都小于或者等于其左右节点的值,成为小顶堆; (4)堆经常被用来实现优先级队列; (5)堆排序的最好,最坏,平均时间复杂度都是O(nlogn) ...原创 2021-03-01 09:51:28 · 186 阅读 · 0 评论