二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它可以是一棵空树,也可以是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜 ...
分类:
其他好文 时间:
2021-04-21 12:31:46
阅读次数:
0
堆排序 public class HeapSort { public static void main(String[] args) { int[] arr = {1, 3, 519, 2, 10, 8, 0, 998}; heapSort(arr); System.out.println(Arra ...
分类:
编程语言 时间:
2021-04-21 12:26:45
阅读次数:
0
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。64根柱子移动完毕之日,就是世界毁灭之时。 def hanio(n,a,b,c): ...
分类:
编程语言 时间:
2021-04-21 11:56:16
阅读次数:
0
#题 25:合并两个排序的链表 ##题干 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。——《剑指 Offer》P145 ##测试样例 链表的数据结构定义如下(Python): class ListNode: def __init__(self, x): self.v ...
分类:
编程语言 时间:
2021-04-20 15:40:06
阅读次数:
0
所谓并查集就是将编号为1~n的n个对象划分为不相交集合,在每个集合中,选择其中的某个元素代表所在集合在这个集合中,并查集的操作有初始化,合并,查找。 #include<bits/stdc++.h> using namespace std; #define IOS ios::sync_with_std ...
分类:
其他好文 时间:
2021-04-20 15:31:02
阅读次数:
0
#堆排序 通过将无序表转化为堆,可以直接找到表中最大值或者最小值,然后将其提取出来,令剩余的记录再重建一个堆, 取出次大值或者次小值,如此反复执行就可以得到一个有序序列,此过程为堆排序。 思路: 1.创建一个堆 H[0……n-1]; 2.把堆首(最大值)和堆尾互换; 3.把堆的尺寸缩小 1,并调用 ...
分类:
编程语言 时间:
2021-04-20 14:08:43
阅读次数:
0
| # java 集合面试 | | | | ## 一.各类集合框架的数据结构总结 | | | | ### 1.Collection接口下的集合 | | | | | | | | #### 1.1List接口 | | | | - Arraylist: Object[]数组 | | - Vector:Ob ...
分类:
编程语言 时间:
2021-04-19 15:39:19
阅读次数:
0
heap堆的使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ...
分类:
编程语言 时间:
2021-04-16 12:16:43
阅读次数:
0
题目 点这里看题目。 分析 直接来做这个有趣的问题似乎显得太过棘手,不妨考虑一个较弱的问题: \[ \sum_{u=1}^n s_u \] 假如当前根确定为 \(r\) ,那么就有: \[ \sum_{u=1}^ns_u=\sum_{u=1}^n(\operatorname{dist}(u,r)+1 ...
分类:
其他好文 时间:
2021-04-16 12:12:11
阅读次数:
0
# 1. 选择排序:循环找最小值,依次放在左侧 def select_sort(arr): for i in range(len(arr)-1): min_index = i for j in range(i+1, len(arr)): if arr[j] < arr[min_index]: min ...
分类:
编程语言 时间:
2021-04-15 12:18:58
阅读次数:
0