果然我在这个专栏的更新上没有压力,哈哈,这挺好的,不用在乎别人是不是看,反正自己总结出来,巩固了知识就好。
有序数组其实就是数组的进化版,和数组唯一的区别就是“有序”这两个字,就是指在这个数组当中的所有数据,必须按照一定的顺序来排列,即便是插入新数据或者删除原有数据,仍然要按照既定规则来排序;而普通的数组是不考虑顺序的,新添加的数据可以在末尾(JavaScript:Array.push;Python:list.append)也可以在开头(JavaScript:Array.unshift;Python:list.insert(0, element)),当然这里不考虑语言的差异,括号里面仅仅是两种常见语言的样例。
1 插入
比如有一个数组 [3, 17, 80, 202],它如果是个普通数组,当我们想插入新的数值 75 时,可以直接放在数组最后:
那么,这里只需要 1 步就能完成操作了。
可如果是个有序数组,并且按照数字升序排列,就必须要找到一个合适的位置来插入新的数值,从而使得整个数组依旧保持有序:
那么这个步骤就不可能只需 1 步完成了,计算机需要先找到合适的位置,然后还需要把应该属于其后面的值后移,给插入腾出位置,最后再插入 75。
(1)检查索引 0 的值,并对比其是否大于 75: