题目描述: 方法一:堆排序* 方法二:快速排序 方法三:bfprt算法* ...
分类:
编程语言 时间:
2019-10-03 18:16:13
阅读次数:
78
1 堆的概念 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, ... , Rn}当且仅当满足下列关系之一时,称之为堆: (1) R ...
分类:
编程语言 时间:
2019-10-03 16:04:06
阅读次数:
115
``` !/usr/bin/python coding=UTF 8 i 指的是父节点 求一个父节点的左节点 是i 2+1 右节点 i 2+2 i 指的是孩子节点 求父节点的方式是 (i 2)//2 思路:先进行堆的调整或构造成一个大堆,然后在进行堆的排序 sift函数思路:循环将父节点和左右孩子节点 ...
分类:
编程语言 时间:
2019-09-30 18:27:03
阅读次数:
91
分为小顶堆和大顶堆,小顶堆的性质是任何一个节点的两个字节点都比这个节点大,大顶堆相反 在建立大顶堆的时候,我的理解是先建立一颗假的小顶堆,建立完之后,每次根节点和堆顶进行交换(因为堆顶能保证堆顶为当前所有数的最小),然后将堆的大小减去1,这样在对规格为n-1的堆进行调整,直到堆的大小为1 然后调整完 ...
分类:
编程语言 时间:
2019-09-30 12:50:41
阅读次数:
86
0,堆的简介 数据结构中的堆是一种特殊的二叉树,不同于 Java 内存模型中的堆。 堆必须符合以下两个条件: 从第一点可以知道,堆适合用数组来存储。 第二点中,若父节点都大于等于左右子节点,则被称为大顶堆,反之则为小顶堆。 图-最大堆 1,堆的特性 2,堆的实现 3,堆的应用 3.1堆排序 利用堆这 ...
分类:
其他好文 时间:
2019-09-24 21:03:51
阅读次数:
96
Python八大算法的实现,插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法 ...
分类:
编程语言 时间:
2019-09-19 21:09:41
阅读次数:
81
十大排序算法总结(Python3实现) 本文链接:https://blog.csdn.net/aiya_aiya_/article/details/79846380 目录 一、概述 二、算法简介及代码展示 1.冒泡排序 2.简单选择排序 3.简单插入排序 4.堆排序 5.快速排序 6.希尔排序 7. ...
分类:
编程语言 时间:
2019-09-19 21:06:02
阅读次数:
124
1.完全二叉树的概念 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。 完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结 ...
分类:
编程语言 时间:
2019-09-19 10:28:29
阅读次数:
136
二分查找 快速排序 堆排序 参考: https://www.cnblogs.com/chengxiao/p/6129630.html 堆的定义和基本性质 堆排序的基本思想 堆排序代码实现 ...
分类:
编程语言 时间:
2019-09-14 17:11:15
阅读次数:
107