堆 堆相关操作 建堆 向下堆化 向上堆化 删除堆顶(向下堆化) 添加元素(向上堆化) 堆排序 建堆(逆序 向下堆化) 排序(向下堆化) Code ...
分类:
编程语言 时间:
2020-02-22 13:45:48
阅读次数:
51
排序 参考 "五分钟学算法" 复杂度比较 时间复杂度 O(n2) 各种简单的排序:直接插入、直接选择、冒泡 O(nlog2n) 快速排序、堆排序、归并排序 O(n1+$\lambda$),希尔排序 线性阶O(n)排序,基排序、桶、箱排序 稳定性 稳定排序:冒泡、插入、归并、基数排序 不稳定:选择、快 ...
分类:
编程语言 时间:
2020-02-22 13:40:19
阅读次数:
86
3.堆排序 堆是一种完全二叉树(是除了最后一层,其它每一层都被完全填充,保持所有节点都向左对齐),首先需要知道概念:最大堆问题,最大堆就是根节点比子节点值都大,并且所有根节点都满足,那么称它为最大堆。反之最小堆。 当已有最大堆,如下图,首先将7提出,然后将堆中最后一个元素放到顶点上,此时这个堆不满足 ...
分类:
编程语言 时间:
2020-02-21 13:05:38
阅读次数:
111
对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理。 A. 正确 B. 错误 解析:运行异常,可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出。 答案:B 下面哪些类可以被继承? Java.lang.Thread、java.lang.Number、java.lan ...
分类:
其他好文 时间:
2020-02-20 14:59:38
阅读次数:
161
https://www.runoob.com/w3cnote/radix-sort.html 算法系列 1.0 十大经典排序算法 1.1 冒泡排序 1.2 选择排序 1.3 插入排序 1.4 希尔排序 1.5 归并排序 1.6 快速排序 1.7 堆排序 1.8 计数排序 1.9 桶排序 1.10 基 ...
分类:
编程语言 时间:
2020-02-17 12:27:17
阅读次数:
57
笔者埋坑后面再来分析总结 1. 插入排序 直接插入排序:O(n^2) 二分插入排序:O(n^2) 希尔排序:O(nlog n) 2. 交换排序 冒泡排序:O(n^2) 快速排序:O(nlog2 n) java public static void SimpleSelectSort(int[] arr ...
分类:
编程语言 时间:
2020-02-17 01:18:02
阅读次数:
88
#include <vector> #include <iostream> using namespace std; //最大堆 void adjust(int i, vector<int>& array,int length) { while (i >= 0 && i < length / 2) ...
分类:
编程语言 时间:
2020-02-13 17:36:19
阅读次数:
80
#堆排序#基本思想:1.将初始待排序数字列表(R1,R2,...,Rn)构建成大顶堆,此堆为初始的无序列表# 2.将堆顶元素R1与最后一个元素Rn交换,此时得到新的无序列表(R1,R2,...,Rn-1)和新的有序列表(Rn)# 3.由于交换后新的堆顶R1可能违反堆的性质,因此需要对当前无序列表(R ...
分类:
编程语言 时间:
2020-02-12 21:57:43
阅读次数:
72
学习自菜鸟教程,自己加以总结希望可以多多重复!!! 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 基数排序 1 //冒泡排序 O(n2) 2 public static void BubbleSort(int[] arr){ 3 int temp; 4 for(int i=0; ...
分类:
编程语言 时间:
2020-02-12 14:53:26
阅读次数:
78