摘要: 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, … , Rn}当且仅当满足下列关系之一时,称之为堆: (1) Ri <= R2i+ 阅读全文
posted @ 2018-08-24 12:28 Xoder 阅读(231) 评论(0) 推荐(0)
摘要: 今天开始学习快速排序,因为之前用过python,在函数之间值得传递过程中没这么麻烦。现在开始用c++,出现了一些错误,如上所示。是一个错误的快排。由于,函数的返回值只能是一个数,此处为改进的额快排,即partition2的作用是把一个数组与数组最后一个数a[n]比较后,分成三部分即大于小于最后一个数 阅读全文
posted @ 2018-08-23 20:36 Xoder 阅读(153) 评论(0) 推荐(0)
摘要: 用上面所示函数可以完成对a,b两数的操作。然而,一定要注意,a,b需指向两个不同的地址。即如果a=1,b=1;那么结果没有问题。但是如果是swap(a,a)那么结果就会是0。可做如下修改。 此处虽然是将a==b 拿出来,其实只是为了保障a,b不是指向同一地址。 自学笔记,若有错误,希望指出。 阅读全文
posted @ 2018-08-23 19:57 Xoder 阅读(143) 评论(0) 推荐(0)