微前端架构如何改变企业的开发模式与效率提升
586
2022-09-30
tomcat打破双亲委派机制_双写实现数据迁移_mysql的架构_排序算法稳定性应用场景_
双写实现数据迁移
mysql的架构
在一张大表内包含了整个年级所有的班的同学的考试成绩,当然为了区别每个同学是来自哪个班的,相应的也有班级这个字段来标识。现在,我们依据总成绩这个字段来将全年级的同学进行一个排名,排序的结果当然是各个班级的学生穿插在一起,大致如下表所示:
姓名 班级 成绩张三 2 95李四 1 93王五 2 90赵六 3 80丁七 3 70…… …… ……
在得到这样的排序结果之后,我们可以大致了解到每个同学在全年级中的名次,那么如果想要得到每个同学在班级中的名次呢,我们能否在现有排序的基础上,以班级这个字段为依据进行排序呢?如果,我们所采用的排序算法不稳定,那么很可能我们在对班级字段进行排序后得到下面这个结果:
姓名 班级 成绩李四 1 93王五 2 90张三 2 95赵六 3 80丁七 3 70…… …… ……
我们发现,在班级这个字段进行重排的过程中,张三这条字段虽然调整到李四之后,但是他和王五的相对次序与原表中发生了改变,这样第一次排序中产生的成绩降序这个实际意义在班级这个小的序列中就无法作为参考依据,那么如果我们希望查询学生在班级中的名次,在原大表中不论怎么重排都是无法做到的,任何一个字段的排序就会使得之前排好的其他字段的排序关系失效,我们不得不开辟新的空间来存储各个班的学生数据,花费额外的时间成本和空间成本,这样无疑是非常浪费的。
通过这个案例我们可以看出稳定的排序算法能够对多次排序的结果有记忆功能,帮助我们节省大量的时间和空间成本,从上述案例我们似乎可以发现,稳定与否的关键在于一次排序过程中,数据的位置交换有没有跨越值相等的元素,如果没有跨越,那么结果一定是稳定的,否则是不稳定的。那么到底是不是这样的,我们来通过一些具体的算法来分析一下。
java8新特性
IOC容器初始化过程
作者:你的雷哥
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~