排序算法
温和scar
C++及数据结构与算法爱好者
展开
-
堆排序 思路总结
堆排序总结:1.建堆:a.找到最后一个结点的父节点,数组下标为(n-1)/2,然后“完全下沉”b.从上面那个结点挨个调整到第一个节点。也就是每个节点做 ”完全下沉“ 操作,就是要下沉 每一个变动了的结点,直至到达尾结点或者符合条件。2.堆下沉:(完全下沉,连锁下沉)一定是要把这个结点换过来的结点 继续检查交换 ,直到不能再交换 或者 到达二叉树末尾也就是不是只交换一次,是要把所有变...原创 2020-03-20 18:42:06 · 124 阅读 · 0 评论 -
堆的基本操作 自己总结
堆排序总结:建堆:a.找到最后一个结点的父节点,数组下标为(n-1)/2,然后“完全下沉”b.从上面那个结点挨个调整到第一个节点。也就是每个节点做 ”完全下沉“ 操作,就是要下沉 每一个变动了的结点,直至到达尾结点或者符合条件。堆下沉:(完全下沉)一定是要把这个结点换过来的结点 继续检查交换 ,直到不能再交换 或者 到达二叉树末尾也就是不是只交换一次,是要把所有变动了的结点都进行...原创 2020-03-20 18:39:52 · 193 阅读 · 0 评论 -
堆与堆排序
转自:https://blog.csdn.net/morewindows/article/details/6709644白话经典算法系列之七 堆与堆排序原创MoreWindows 最后发布于2011-08-22 20:04:13 阅读数 419730 收藏展开堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉...转载 2020-03-20 17:39:20 · 72 阅读 · 0 评论 -
转载:算法概念 及 复杂度
时间复杂度比较简单的计算方法是:看看有几重for循环,只有一重则时间复杂度为O(n),二重则为O(n^2),依此类推,如果有二分则为O(logn),二分例如快速幂、二分查找,如果一个for循环套一个二分,那么时间复杂度则为O(nlogn)。算法概念 及 复杂度一、算法:算法是对特定问题求解步骤的一种描述,是独立存在的一种解决问题的方法和思想。它是指令的有限序列,其中每一条指令表示一个或多个...转载 2020-03-16 17:38:20 · 153 阅读 · 0 评论 -
快速排序理解
快速排序,就是先选定一个数作为标杆数,这里选的是最后一个数字。然后从这个数字之外 去考虑。这里从小到大 来排序。这个数字之外的 数列,从左,右 两头开始。 左右分界线左后确定左边的数字要 小于这个数 就算符合要求。 也就是 左小。右边的数字要 大于这个数 就算符合要求。 也就是 右大。然后先从左往右看,找到第一个大于这个标杆数 的数字,这是一个不满足 要求的数字,称为 左大数...原创 2020-03-12 14:49:29 · 317 阅读 · 0 评论