1、一直以来都有写公众号的想法,可喜的是自己以前申请了一个公众号,可以留言,具备了基础 但是一直还没想好写什么。。今天又被一行动力蛮强的小姑娘击中了,再一次强化了写公号的想法。记在这里,以后一定执行起来。
2、今天重温了堆排序和快速排序。
堆排序的基础存在是完全二叉树,所以可以用数组很好的表示。原理是从最后一个不是叶子结点的节点开始到根节点,一个一个调整保证每个节点要比子女大。在对中间节点调整时要注意当和子女交换了之后,会影响到子女的子女,所以下面的节点也要调整。调整完毕后根节点即为最大,这是交换根节点和最后一个叶子,然后对除了最后一个叶子的树再做调整,直到树只有一个根节点结束。
快速排序的关键是参照物和两个哨兵。首先把数组第一个元素作为参照,然后设置两个哨兵分别在数组两端,前面哨兵每次向后找到大于参照的数据停下。后面哨兵向前找到小于参照的数据停下,然后将两个哨兵的数据互换,然后哨兵在各自接着移动循环这个过程,直到两个哨兵相遇在同一个位置上。此时它们前面数据都小于参照,后面数据都大于参照,它们位置上的数据也一定小于参照,因为后面的哨兵先移动(前面写反了),数据大于参照就会一直移动直到遇到另一个哨兵或者小于参照的数据,而这两种情况的数据都是小于参照的。这时将这个数据和参照交换,然后递归这个函数。
网友评论