选择排序

内存工作原理

内存就是将你需要的东西存放的地方,每个东西都有一个存放的地址。fe0ffeeb是一个内存单元地址。
当数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址,需要存储多项数据的时候,会用到数据和链表。(但并不试用所有情况)

数组和链表

使用数组表示,所有的数据在内存中是相连的。但是如果临时添加数据,但是原来最后数据的后面已经没有连续的位置了,那么就需要重新申请一个相关的地址块。每次临时添加数据,都有可能需要重新分配地址块。

链表

链表可以存储在内存的任何地方。链表的每一个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。链表的优势在于插入元素方面。

数组

当想要直接读取链表的最后一个元素时候,必须要从第一个元素开始,因为不知道下一个地址存放在哪个位置。而数组的话,你知道所有数据所在的地址,可以快速找到指定数据所在的地址。

术语

元素的位置称为 索引
数组支持随机访问和顺序访问;但是链表只支持顺序访问。

选择排序

举例:每首歌曲都记录了播放次数,现在需要将歌曲按照播放次数排序。先遍历一遍选择最多的,然后再剩下的遍历一遍选择最多的。那么对于这种操作要做n次,所以时间复杂度是O(n^2)。