摘要: 1.对几乎有序的数组排序 问题:给定数组arr,元素个数为N,将其排序后元素移动的顺序不超过K,其中K<<N。 分析: 1.冒泡排序,选择排序,快速排序,归并排序等排序时间复杂度与数组状态无关。 2.插入排序复杂度为O(N*K) 3.改进后的堆排序可以做到O(N*logK) 改进后的堆排序: 1.考 阅读全文
posted @ 2018-05-06 13:05 即便那总是过去 阅读(949) 评论(0) 推荐(0) 编辑
摘要: 1.堆的数组实现 1.由于堆是一个完全二叉树,故可用数组表示。 2.当根节点下标为0时,左节点为2i+1,右节点为2i+2,父节点为(i-1)/2。 3.利用数组实现的堆,当对其删除元素时,应该从数组尾部删除,堆的根节点位置不应改变,否则堆的内部会发生变化,如图。 数组的初始状态和堆结构 初始状态 阅读全文
posted @ 2018-05-06 13:04 即便那总是过去 阅读(135) 评论(0) 推荐(0) 编辑